use serde::{Deserialize, Serialize};
use crate::{LayoutName, SessionName, WindowTarget};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum SelectLayoutTarget {
Session(SessionName),
Window(WindowTarget),
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SelectLayoutRequest {
pub target: SelectLayoutTarget,
pub layout: LayoutName,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SelectCustomLayoutRequest {
pub target: SelectLayoutTarget,
pub layout: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SelectOldLayoutRequest {
pub target: SelectLayoutTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SpreadLayoutRequest {
pub target: SelectLayoutTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct NextLayoutRequest {
pub target: WindowTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct PreviousLayoutRequest {
pub target: WindowTarget,
}