Skip to main content

oak_d2/parser/
element_type.rs

1use oak_core::{ElementType, UniversalElementRole};
2#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
6#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
7#[repr(u8)]
8pub enum D2ElementType {
9    Root,
10    Shape,
11    Connection,
12    Container,
13    Error,
14}
15
16impl ElementType for D2ElementType {
17    type Role = UniversalElementRole;
18
19    fn role(&self) -> Self::Role {
20        match self {
21            Self::Root => UniversalElementRole::Root,
22            _ => UniversalElementRole::None,
23        }
24    }
25}