use serde::{Deserialize, Serialize};
use super::CommandOutput;
use crate::{LayoutName, SessionName, TerminalSize, WindowTarget};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct NewWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct KillWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SelectWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RenameWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct NextWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct PreviousWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct LastWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct WindowListEntry {
pub target: WindowTarget,
pub window_id: String,
pub name: Option<String>,
pub pane_count: u32,
pub size: TerminalSize,
pub layout: LayoutName,
pub active: bool,
pub last: bool,
pub rendered: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ListWindowsResponse {
pub windows: Vec<WindowListEntry>,
pub output: CommandOutput,
}
impl ListWindowsResponse {
#[must_use]
pub fn command_output(&self) -> &CommandOutput {
&self.output
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct LinkWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct MoveWindowResponse {
pub session_name: SessionName,
pub target: Option<WindowTarget>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SwapWindowResponse {
pub source: WindowTarget,
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RotateWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ResizeWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RespawnWindowResponse {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct UnlinkWindowResponse {
pub target: WindowTarget,
}