shapes_converter/shex_to_html/
cardinality.rs

1// use serde::Serialize;
2use serde::ser::{Serialize, Serializer};
3
4#[derive(Debug, PartialEq, Clone, Default)]
5pub enum Cardinality {
6    #[default]
7    OneOne,
8
9    Star,
10    Plus,
11    Optional,
12    Range(i32, i32),
13    Fixed(i32),
14}
15
16impl Serialize for Cardinality {
17    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
18    where
19        S: Serializer,
20    {
21        match self {
22            Cardinality::OneOne => serializer.serialize_str("Exactly one"),
23            Cardinality::Star => serializer.serialize_str("Zero or more"),
24            Cardinality::Plus => serializer.serialize_str("One or more"),
25            Cardinality::Optional => serializer.serialize_str("Zero or one (optional)"),
26            Cardinality::Range(_, _) => todo!(),
27            Cardinality::Fixed(_) => todo!(),
28        }
29    }
30}