use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum BondDescriptorKind {
NoBond,
NonDirectional,
Head,
Tail,
}
#[derive(Debug, Clone, PartialEq)]
pub struct BondDescriptor {
pub kind: BondDescriptorKind,
pub index: Option<u32>,
}
impl fmt::Display for BondDescriptorKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
BondDescriptorKind::NoBond => Ok(()),
BondDescriptorKind::NonDirectional => write!(f, "$"),
BondDescriptorKind::Head => write!(f, "<"),
BondDescriptorKind::Tail => write!(f, ">"),
}
}
}
impl fmt::Display for BondDescriptor {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "[")?;
write!(f, "{}", self.kind)?;
if let Some(idx) = self.index {
write!(f, "{}", idx)?;
}
write!(f, "]")
}
}