use std::any::Any;
use crate::{ObjectType, RawMetadata, Searchable};
#[allow(clippy::module_name_repetitions)]
#[typetag::serde(tag = "type")]
pub trait RawObject: RawObjectToAny + Send + Sync + Searchable {
fn get_metadata(&self) -> RawMetadata;
fn get_identifier(&self) -> &str;
fn is_empty(&self) -> bool;
fn get_type(&self) -> &ObjectType;
fn parse_tag(&mut self, key: &str, value: &str);
fn get_object_id(&self) -> &str;
fn get_name(&self) -> &str;
fn clean_self(&mut self);
}
pub trait RawObjectToAny: 'static {
fn as_any(&self) -> &dyn Any;
}
impl<T: 'static> RawObjectToAny for T {
fn as_any(&self) -> &dyn Any {
self
}
}