use serde::{Deserialize, Serialize};
use strum::{Display, EnumString, IntoStaticStr};
#[derive(
Debug, Copy, Clone, PartialEq, EnumString, Display, IntoStaticStr, Deserialize, Serialize,
)]
#[serde(rename_all = "lowercase")]
#[strum(serialize_all = "lowercase")]
pub enum ElementType {
At,
Reply,
Text,
Image,
File,
Record,
Video,
Face,
Json,
Xml,
}
pub trait Element: Send + Sync {
fn r#type(&self) -> ElementType;
}
impl PartialEq for dyn Element {
fn eq(&self, other: &Self) -> bool {
self.r#type() == other.r#type()
}
}
impl Eq for dyn Element {}