Mountain/ApplicationState/State/FeatureState/mod.rs
1//! # FeatureState Module (ApplicationState)
2//!
3//! ## RESPONSIBILITIES
4//! Manages feature-specific state including diagnostics, documents, terminals,
5//! webviews, tree views, output channels, and markers.
6//!
7//! ## ARCHITECTURAL ROLE
8//! FeatureState is part of the **state organization layer**, representing
9//! all feature-specific state in the application.
10//!
11//! ## KEY COMPONENTS
12//! - Diagnostics: Diagnostic errors state
13//! - Documents: Open documents state
14//! - Terminals: Terminal instances state
15//! - Webviews: Webview panels state
16//! - TreeViews: Tree view providers state
17//! - OutputChannels: Output channel state
18//! - Markers: Marker state
19//! - State: Main struct combining all feature state
20//!
21//! ## ERROR HANDLING
22//! Uses `Arc<Mutex<...>>` for thread-safe access with proper error handling.
23//!
24//! ## LOGGING
25//! State changes are logged at appropriate levels.
26//!
27//! ## PERFORMANCE CONSIDERATIONS
28//! - Lock mutexes briefly
29//! - Avoid nested locks
30//! - Use Arc for shared ownership
31//!
32//! ## TODO
33//! - [ ] Add feature state validation
34//! - [ ] Implement feature lifecycle events
35//! - [ ] Add feature metrics
36
37pub mod Diagnostics;
38pub mod Documents;
39pub mod Terminals;
40pub mod Webviews;
41pub mod TreeViews;
42pub mod OutputChannels;
43pub mod Markers;
44pub mod State;
45
46pub use Diagnostics::*;
47pub use Documents::*;
48pub use Terminals::*;
49pub use Webviews::*;
50pub use TreeViews::*;
51pub use OutputChannels::*;
52pub use Markers::*;