use std::fmt;
#[derive(Copy, Clone, Debug, Default)]
pub struct VersionResponse<'a> {
pub client: &'a str,
pub version: &'a str,
pub style: Option<&'a str>,
pub registered: Option<bool>,
}
impl fmt::Display for VersionResponse<'_> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let Self {
client: name,
version,
style,
registered,
} = self;
let registered = match registered {
Some(true) => " REGISTERED=yes",
Some(false) => " REGISTERED=no",
None => "",
};
write!(f, "\x1B[1z<VERSION MXP=1.0 ")?;
if let Some(style) = style {
write!(f, "STYLE={style} ")?;
}
write!(f, "CLIENT={name} VERSION={version}{registered}>\r\n")
}
}