use std::{fmt, marker::PhantomData};
use derivative::Derivative;
use serde::{Deserialize, Serialize};
#[derive(Derivative, Serialize, Deserialize, PartialEq, Eq)]
#[derivative(Clone, Debug)]
pub enum ShCmdState<Id> {
None,
Some {
stdout: String,
stderr: String,
marker: PhantomData<Id>,
},
}
impl<Id> fmt::Display for ShCmdState<Id> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::None => write!(f, "<none>"),
Self::Some { stderr, .. } => stderr.fmt(f),
}
}
}