#![allow(dead_code)]
#[derive(Debug, Clone)]
pub struct ClassModel {
pub classes: Vec<ClassDecl>,
pub relations: Vec<ClassRelation>,
pub direction: Option<String>,
pub namespaces: Vec<ClassNamespace>,
}
#[derive(Debug, Clone)]
pub struct ClassDecl {
pub name: String,
pub display_label: Option<String>,
pub namespace: Option<String>,
pub annotations: Vec<String>,
pub members: Vec<String>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ClassNamespace {
pub id: String,
pub name: String,
pub parent: Option<String>,
}
#[derive(Debug, Clone)]
pub struct ClassRelation {
pub from: String,
pub to: String,
pub relation_type: ClassRelationType,
pub label: Option<String>,
pub cardinality_from: Option<String>,
pub cardinality_to: Option<String>,
pub marker_start: bool,
pub marker_end: bool,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ClassRelationType {
Association,
DirectedAssociation,
Inheritance,
Realization,
Composition,
Aggregation,
Dependency,
DirectedDependency,
Lollipop,
}