use crate::pane::PaneId;
use crate::tab::TabId;
use crate::tmux::{PrefixKey, PrefixState, TmuxPaneId, TmuxSession, TmuxSync};
pub(crate) struct TmuxState {
pub(crate) tmux_session: Option<TmuxSession>,
pub(crate) tmux_sync: TmuxSync,
pub(crate) tmux_session_name: Option<String>,
pub(crate) tmux_gateway_tab_id: Option<TabId>,
pub(crate) tmux_prefix_key: Option<PrefixKey>,
pub(crate) tmux_prefix_state: PrefixState,
pub(crate) tmux_pane_to_native_pane: std::collections::HashMap<TmuxPaneId, PaneId>,
pub(crate) native_pane_to_tmux_pane: std::collections::HashMap<PaneId, TmuxPaneId>,
}
impl TmuxState {
pub(crate) fn new(tmux_prefix_key: Option<PrefixKey>) -> Self {
Self {
tmux_session: None,
tmux_sync: TmuxSync::new(),
tmux_session_name: None,
tmux_gateway_tab_id: None,
tmux_prefix_key,
tmux_prefix_state: PrefixState::new(),
tmux_pane_to_native_pane: std::collections::HashMap::new(),
native_pane_to_tmux_pane: std::collections::HashMap::new(),
}
}
}