use std::fmt;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct ShCmdStateDiff {
stdout: String,
stderr: String,
}
impl ShCmdStateDiff {
pub fn new(stdout: String, stderr: String) -> Self {
Self { stdout, stderr }
}
pub fn stdout(&self) -> &str {
self.stdout.as_ref()
}
pub fn stderr(&self) -> &str {
self.stderr.as_ref()
}
}
impl std::ops::Deref for ShCmdStateDiff {
type Target = String;
fn deref(&self) -> &Self::Target {
&self.stdout
}
}
impl std::ops::DerefMut for ShCmdStateDiff {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.stdout
}
}
impl fmt::Display for ShCmdStateDiff {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
self.stderr.fmt(f)
}
}