use serde::{Deserialize, Serialize};
use super::CommandOutput;
use crate::SessionName;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct NewSessionResponse {
pub session_name: SessionName,
pub detached: bool,
#[serde(default)]
pub output: Option<CommandOutput>,
}
impl NewSessionResponse {
#[must_use]
pub const fn command_output(&self) -> Option<&CommandOutput> {
self.output.as_ref()
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub struct HasSessionResponse {
pub exists: bool,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub struct KillSessionResponse {
pub existed: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RenameSessionResponse {
pub session_name: SessionName,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ListSessionsResponse {
pub output: CommandOutput,
}
impl ListSessionsResponse {
#[must_use]
pub fn command_output(&self) -> &CommandOutput {
&self.output
}
}