2020-05-11 03:11:10 +02:00
|
|
|
#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)]
|
|
|
|
pub enum SectionKind
|
|
|
|
{
|
|
|
|
CompletedDefinitions,
|
|
|
|
IntegrityConstraints,
|
|
|
|
Axioms,
|
|
|
|
Assumptions,
|
|
|
|
Lemmas,
|
|
|
|
Assertions,
|
|
|
|
}
|
|
|
|
|
2020-05-11 05:03:59 +02:00
|
|
|
impl SectionKind
|
|
|
|
{
|
|
|
|
pub fn display_capitalized(&self) -> SectionKindCapitalizedDisplay
|
|
|
|
{
|
|
|
|
SectionKindCapitalizedDisplay(*self)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-05-11 03:11:10 +02:00
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|
2020-05-11 05:03:59 +02:00
|
|
|
|
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|