shapes_converter/shex_to_html/
cardinality.rs1use 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}