1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
pub mod identifier_object; pub mod object; pub use identifier_object::ResourceIdentifierObject; pub use object::ResourceObject; use serde::{Deserialize, Serialize}; use serde_json::Value; use std::collections::HashMap; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum ResourceType { Identifier(ResourceIdentifierObject), Object(ResourceObject), } pub trait ResourceTrait { fn get_attributes(&self) -> Option<HashMap<String, Value>> { None } fn get_id(&self) -> String; fn to_identifier(&self) -> ResourceIdentifierObject; fn to_resource_object(&self) -> ResourceObject; }