use crate::{GetPaneOption, GetPaneOptionTr, TmuxCommand, TmuxCommands};
use std::borrow::Cow;
pub trait GetPaneOptionsTr<'a> {
type Getter: GetPaneOptionTr;
fn new() -> Self;
fn push(&mut self, option: TmuxCommand<'a>);
fn push_cmds(&mut self, options: TmuxCommands<'a>);
#[cfg(feature = "tmux_3_0")]
fn allow_rename<S>(mut self, target: Option<S>) -> Self
where
S: Into<Cow<'a, str>>,
Self: Sized,
{
self.push(GetPaneOption::allow_rename(target));
self
}
#[cfg(feature = "tmux_3_0")]
fn alternate_screen<S>(mut self, target: Option<S>) -> Self
where
S: Into<Cow<'a, str>>,
Self: Sized,
{
self.push(GetPaneOption::alternate_screen(target));
self
}
#[cfg(feature = "tmux_3_0")]
fn remain_on_exit<S>(mut self, target: Option<S>) -> Self
where
S: Into<Cow<'a, str>>,
Self: Sized,
{
self.push(GetPaneOption::remain_on_exit(target));
self
}
#[cfg(feature = "tmux_3_0")]
fn window_active_style<S>(mut self, target: Option<S>) -> Self
where
S: Into<Cow<'a, str>>,
Self: Sized,
{
self.push(GetPaneOption::window_active_style(target));
self
}
#[cfg(feature = "tmux_3_0")]
fn window_style<S>(mut self, target: Option<S>) -> Self
where
S: Into<Cow<'a, str>>,
Self: Sized,
{
self.push(GetPaneOption::window_style(target));
self
}
#[cfg(feature = "tmux_3_2")]
fn synchronize_panes<S>(mut self, target: Option<S>) -> Self
where
S: Into<Cow<'a, str>>,
Self: Sized,
{
self.push(GetPaneOption::synchronize_panes(target));
self
}
fn build(self) -> TmuxCommands<'a>;
}