use microcad_lang_base::SrcRef;
use microcad_lang_proc_macros::SrcReferrer;
#[derive(Clone, Debug, Default, PartialEq, SrcReferrer)]
pub struct FormatSpec {
pub precision: Option<u32>,
pub width: Option<u32>,
pub src_ref: SrcRef,
}
impl std::fmt::Display for FormatSpec {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match (self.width, self.precision) {
(Some(width), Some(precision)) => write!(f, "0{width}.{precision}"),
(None, Some(precision)) => write!(f, ".{precision}"),
(Some(width), None) => write!(f, "0{width}"),
_ => Ok(()),
}
}
}