pub struct AppModel {
pub active_window: WindowId,
pub windows: IndexMap<WindowId, WindowRecord>,
pub workspaces: IndexMap<WorkspaceId, Workspace>,
}Fields§
§active_window: WindowId§windows: IndexMap<WindowId, WindowRecord>§workspaces: IndexMap<WorkspaceId, Workspace>Implementations§
Source§impl AppModel
impl AppModel
pub fn new(label: impl Into<String>) -> Self
pub fn demo() -> Self
pub fn active_window(&self) -> Option<&WindowRecord>
pub fn active_workspace_id(&self) -> Option<WorkspaceId>
pub fn active_workspace(&self) -> Option<&Workspace>
pub fn create_workspace(&mut self, label: impl Into<String>) -> WorkspaceId
pub fn rename_workspace( &mut self, workspace_id: WorkspaceId, label: impl Into<String>, ) -> Result<(), DomainError>
pub fn reorder_workspaces( &mut self, window_id: WindowId, new_order: Vec<WorkspaceId>, ) -> Result<(), DomainError>
pub fn switch_workspace( &mut self, window_id: WindowId, workspace_id: WorkspaceId, ) -> Result<(), DomainError>
pub fn create_workspace_window( &mut self, workspace_id: WorkspaceId, direction: Direction, ) -> Result<PaneId, DomainError>
pub fn create_workspace_window_tab( &mut self, workspace_id: WorkspaceId, workspace_window_id: WorkspaceWindowId, ) -> Result<(WorkspaceWindowTabId, PaneId), DomainError>
pub fn create_pane_tab( &mut self, workspace_id: WorkspaceId, pane_container_id: PaneContainerId, kind: PaneKind, ) -> Result<(PaneTabId, PaneId), DomainError>
pub fn focus_pane_tab( &mut self, workspace_id: WorkspaceId, pane_container_id: PaneContainerId, pane_tab_id: PaneTabId, ) -> Result<(), DomainError>
pub fn move_pane_tab( &mut self, workspace_id: WorkspaceId, pane_container_id: PaneContainerId, pane_tab_id: PaneTabId, to_index: usize, ) -> Result<(), DomainError>
pub fn transfer_pane_tab( &mut self, workspace_id: WorkspaceId, source_pane_container_id: PaneContainerId, pane_tab_id: PaneTabId, target_pane_container_id: PaneContainerId, to_index: usize, ) -> Result<(), DomainError>
pub fn close_pane_tab( &mut self, workspace_id: WorkspaceId, pane_container_id: PaneContainerId, pane_tab_id: PaneTabId, ) -> Result<(), DomainError>
pub fn focus_workspace_window_tab( &mut self, workspace_id: WorkspaceId, workspace_window_id: WorkspaceWindowId, workspace_window_tab_id: WorkspaceWindowTabId, ) -> Result<(), DomainError>
pub fn move_workspace_window_tab( &mut self, workspace_id: WorkspaceId, workspace_window_id: WorkspaceWindowId, workspace_window_tab_id: WorkspaceWindowTabId, to_index: usize, ) -> Result<(), DomainError>
pub fn transfer_workspace_window_tab( &mut self, workspace_id: WorkspaceId, source_workspace_window_id: WorkspaceWindowId, workspace_window_tab_id: WorkspaceWindowTabId, target_workspace_window_id: WorkspaceWindowId, to_index: usize, ) -> Result<(), DomainError>
pub fn extract_workspace_window_tab( &mut self, workspace_id: WorkspaceId, source_workspace_window_id: WorkspaceWindowId, workspace_window_tab_id: WorkspaceWindowTabId, target: WorkspaceWindowMoveTarget, ) -> Result<WorkspaceWindowId, DomainError>
pub fn close_workspace_window_tab( &mut self, workspace_id: WorkspaceId, workspace_window_id: WorkspaceWindowId, workspace_window_tab_id: WorkspaceWindowTabId, ) -> Result<(), DomainError>
pub fn split_pane( &mut self, workspace_id: WorkspaceId, target_pane: Option<PaneId>, axis: SplitAxis, ) -> Result<PaneId, DomainError>
pub fn split_pane_direction( &mut self, workspace_id: WorkspaceId, target_pane: Option<PaneId>, direction: Direction, ) -> Result<PaneId, DomainError>
pub fn focus_workspace_window( &mut self, workspace_id: WorkspaceId, workspace_window_id: WorkspaceWindowId, ) -> Result<(), DomainError>
pub fn focus_pane( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, ) -> Result<(), DomainError>
pub fn acknowledge_pane_notifications( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, ) -> Result<(), DomainError>
pub fn mark_surface_completed( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, surface_id: SurfaceId, ) -> Result<(), DomainError>
pub fn focus_pane_direction( &mut self, workspace_id: WorkspaceId, direction: Direction, ) -> Result<(), DomainError>
pub fn move_workspace_window( &mut self, workspace_id: WorkspaceId, workspace_window_id: WorkspaceWindowId, target: WorkspaceWindowMoveTarget, ) -> Result<(), DomainError>
pub fn resize_active_window( &mut self, workspace_id: WorkspaceId, direction: Direction, amount: i32, ) -> Result<(), DomainError>
pub fn resize_active_pane_split( &mut self, workspace_id: WorkspaceId, direction: Direction, amount: i32, ) -> Result<(), DomainError>
pub fn set_workspace_column_width( &mut self, workspace_id: WorkspaceId, workspace_column_id: WorkspaceColumnId, width: i32, ) -> Result<(), DomainError>
pub fn set_workspace_window_height( &mut self, workspace_id: WorkspaceId, workspace_window_id: WorkspaceWindowId, height: i32, ) -> Result<(), DomainError>
pub fn set_window_split_ratio( &mut self, workspace_id: WorkspaceId, workspace_window_id: WorkspaceWindowId, path: &[bool], ratio: u16, ) -> Result<(), DomainError>
pub fn set_pane_tab_split_ratio( &mut self, workspace_id: WorkspaceId, pane_container_id: PaneContainerId, pane_tab_id: PaneTabId, path: &[bool], ratio: u16, ) -> Result<(), DomainError>
pub fn set_workspace_viewport( &mut self, workspace_id: WorkspaceId, viewport: WorkspaceViewport, ) -> Result<(), DomainError>
pub fn update_pane_metadata( &mut self, pane_id: PaneId, patch: PaneMetadataPatch, ) -> Result<(), DomainError>
pub fn update_surface_metadata( &mut self, surface_id: SurfaceId, patch: PaneMetadataPatch, ) -> Result<(), DomainError>
pub fn apply_signal( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, event: SignalEvent, ) -> Result<(), DomainError>
pub fn apply_surface_signal( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, surface_id: SurfaceId, event: SignalEvent, ) -> Result<(), DomainError>
pub fn create_surface( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, kind: PaneKind, ) -> Result<SurfaceId, DomainError>
pub fn focus_surface( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, surface_id: SurfaceId, ) -> Result<(), DomainError>
pub fn set_workspace_status( &mut self, workspace_id: WorkspaceId, text: String, ) -> Result<(), DomainError>
pub fn clear_workspace_status( &mut self, workspace_id: WorkspaceId, ) -> Result<(), DomainError>
pub fn set_workspace_progress( &mut self, workspace_id: WorkspaceId, progress: ProgressState, ) -> Result<(), DomainError>
pub fn clear_workspace_progress( &mut self, workspace_id: WorkspaceId, ) -> Result<(), DomainError>
pub fn append_workspace_log( &mut self, workspace_id: WorkspaceId, entry: WorkspaceLogEntry, ) -> Result<(), DomainError>
pub fn clear_workspace_log( &mut self, workspace_id: WorkspaceId, ) -> Result<(), DomainError>
pub fn create_agent_notification( &mut self, target: AgentTarget, kind: SignalKind, title: Option<String>, subtitle: Option<String>, external_id: Option<String>, message: String, state: AttentionState, ) -> Result<(), DomainError>
pub fn clear_agent_notifications( &mut self, target: AgentTarget, ) -> Result<(), DomainError>
pub fn start_surface_agent_session( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, surface_id: SurfaceId, agent_kind: String, ) -> Result<(), DomainError>
pub fn stop_surface_agent_session( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, surface_id: SurfaceId, exit_status: i32, ) -> Result<(), DomainError>
pub fn dismiss_surface_alert( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, surface_id: SurfaceId, ) -> Result<(), DomainError>
pub fn recover_interrupted_agent_resumes(&mut self) -> usize
pub fn recover_interrupted_agent_resumes_for_missing_sessions<F>( &mut self, session_exists: F, ) -> usize
pub fn dismiss_interrupted_agent_resume( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, surface_id: SurfaceId, ) -> Result<(), DomainError>
pub fn clear_notification( &mut self, notification_id: NotificationId, ) -> Result<(), DomainError>
pub fn mark_notification_delivery( &mut self, notification_id: NotificationId, delivery: NotificationDeliveryState, ) -> Result<(), DomainError>
pub fn trigger_surface_flash( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, surface_id: SurfaceId, ) -> Result<(), DomainError>
pub fn focus_latest_unread( &mut self, window_id: WindowId, ) -> Result<bool, DomainError>
pub fn open_notification( &mut self, window_id: WindowId, notification_id: NotificationId, ) -> Result<(), DomainError>
pub fn close_surface( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, surface_id: SurfaceId, ) -> Result<(), DomainError>
pub fn move_surface( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, surface_id: SurfaceId, to_index: usize, ) -> Result<(), DomainError>
pub fn transfer_surface( &mut self, source_workspace_id: WorkspaceId, source_pane_id: PaneId, surface_id: SurfaceId, target_workspace_id: WorkspaceId, target_pane_id: PaneId, to_index: usize, ) -> Result<(), DomainError>
pub fn move_surface_to_split( &mut self, source_workspace_id: WorkspaceId, source_pane_id: PaneId, surface_id: SurfaceId, target_workspace_id: WorkspaceId, target_pane_id: PaneId, direction: Direction, ) -> Result<PaneId, DomainError>
pub fn move_surface_to_workspace( &mut self, source_workspace_id: WorkspaceId, source_pane_id: PaneId, surface_id: SurfaceId, target_workspace_id: WorkspaceId, ) -> Result<PaneId, DomainError>
pub fn close_pane( &mut self, workspace_id: WorkspaceId, pane_id: PaneId, ) -> Result<(), DomainError>
pub fn close_workspace( &mut self, workspace_id: WorkspaceId, ) -> Result<(), DomainError>
pub fn workspace_summaries( &self, window_id: WindowId, ) -> Result<Vec<WorkspaceSummary>, DomainError>
pub fn activity_items(&self) -> Vec<ActivityItem>
pub fn snapshot(&self) -> PersistedSession
Trait Implementations§
Source§impl<'de> Deserialize<'de> for AppModel
impl<'de> Deserialize<'de> for AppModel
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for AppModel
impl StructuralPartialEq for AppModel
Auto Trait Implementations§
impl Freeze for AppModel
impl RefUnwindSafe for AppModel
impl Send for AppModel
impl Sync for AppModel
impl Unpin for AppModel
impl UnsafeUnpin for AppModel
impl UnwindSafe for AppModel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.