use crate::strenum; strenum! { pub enum DocumentType { Document, Audio, Image, Page, Video } } pub trait Document : super::Object { fn document_type(&self) -> Option { None } } pub trait Place : super::Object { fn accuracy(&self) -> Option { None } fn altitude(&self) -> Option { None } fn latitude(&self) -> Option { None } fn longitude(&self) -> Option { None } fn radius(&self) -> Option { None } fn units(&self) -> Option<&str> { None } } pub trait Image : Document {} impl Document for serde_json::Value { } impl Image for serde_json::Value {}