use crate::{
Result,
};
use std::borrow::Cow;
pub trait Element {
fn tag(&self) -> Cow<'_, str>;
fn serialize<S: Serializer>(&self, serializer: S) -> Result<()>;
}
pub trait Serializer {
fn serialize_attribute(&mut self, key: &str, value: Cow<'_, str>) -> Result<()>;
fn serialize_text(&mut self, text: Cow<'_, str>) -> Result<()>;
fn serialize_element<E: Element>(&mut self, element: &E) -> Result<()>;
}