anthem-rs/src/problem/section_kind.rs

70 lines
1.7 KiB
Rust

// TODO: remove if possible
#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)]
pub enum SectionKind
{
Axioms,
Assumptions,
Lemmas,
CompletedDefinitions,
IntegrityConstraints,
Assertions,
}
impl SectionKind
{
pub fn display_capitalized(&self) -> SectionKindCapitalizedDisplay
{
SectionKindCapitalizedDisplay(*self)
}
}
impl std::fmt::Debug for SectionKind
{
fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result
{
match self
{
Self::CompletedDefinitions => write!(formatter, "completed definition"),
Self::IntegrityConstraints => write!(formatter, "integrity constraint"),
Self::Axioms => write!(formatter, "axiom"),
Self::Assumptions => write!(formatter, "assumption"),
Self::Lemmas => write!(formatter, "lemma"),
Self::Assertions => write!(formatter, "assertion"),
}
}
}
impl std::fmt::Display for SectionKind
{
fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result
{
write!(formatter, "{:?}", self)
}
}
pub struct SectionKindCapitalizedDisplay(SectionKind);
impl std::fmt::Debug for SectionKindCapitalizedDisplay
{
fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result
{
match self.0
{
SectionKind::CompletedDefinitions => write!(formatter, "Completed definition"),
SectionKind::IntegrityConstraints => write!(formatter, "Integrity constraint"),
SectionKind::Axioms => write!(formatter, "Axiom"),
SectionKind::Assumptions => write!(formatter, "Assumption"),
SectionKind::Lemmas => write!(formatter, "Lemma"),
SectionKind::Assertions => write!(formatter, "Assertion"),
}
}
}
impl std::fmt::Display for SectionKindCapitalizedDisplay
{
fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result
{
write!(formatter, "{:?}", self)
}
}