use crate::Result; use compact_str::CompactString; use std::collections::HashMap; pub struct Taxonomy { pub schemas: Vec, pub linkbases: Vec, } pub struct Schema { pub target_namespace: CompactString, pub elements: HashMap, } pub struct Element { pub name: CompactString, pub element_type: CompactString, pub substitution_group: Option, pub period_type: Option, } pub struct Linkbase { pub role: CompactString, pub arcs: Vec, } pub struct Arc { pub from: CompactString, pub to: CompactString, pub order: f32, pub weight: f32, } impl Taxonomy { pub fn new() -> Self { Self { schemas: Vec::new(), linkbases: Vec::new(), } } pub fn load_schema(&mut self, _path: &str) -> Result<()> { Ok(()) } pub fn load_linkbase(&mut self, _path: &str) -> Result<()> { Ok(()) } }