use crate::state::pty::PtyScrollback;
use tab_api::{
chunk::{InputChunk, OutputChunk},
tab::TabMetadata,
};
#[derive(Debug, Clone)]
pub struct PtyShutdown {}
#[derive(Debug, Clone)]
pub enum PtyRecv {
Init(TabMetadata),
Scrollback,
Resize((u16, u16)),
Input(InputChunk),
Terminate,
}
#[derive(Debug, Clone)]
pub enum PtySend {
Started(TabMetadata),
Output(OutputChunk),
Scrollback(PtyScrollback),
Stopped,
}
impl PartialEq for PtySend {
fn eq(&self, other: &Self) -> bool {
match self {
PtySend::Started(tab) => {
if let PtySend::Started(other_tab) = other {
return tab == other_tab;
} else {
return false;
}
}
PtySend::Output(output) => {
if let PtySend::Output(other_output) = other {
return output == other_output;
} else {
return false;
}
}
PtySend::Scrollback(_scrollback) => {
return false;
}
PtySend::Stopped => {
if let PtySend::Stopped = other {
return true;
} else {
return false;
}
}
}
}
}