use crate::parser::{
parser::NameSpace, parser_state::ParserState, tags::{OpenedTag, Tag}
};
use anyhow::Result;
use quick_xml::events::{BytesEnd, BytesStart};
pub(crate) trait Recognisable {
fn recognise_tag(e: &BytesStart, state: &ParserState, n: NameSpace) -> Option<Tag>
where
Self: Sized;
}
pub(crate) trait Openable {
fn open_tag(tag: Tag, e: &BytesStart, state: &mut ParserState) -> Result<OpenedTag>
where
Self: Sized;
}
pub(crate) trait Closeable {
fn close_tag(opened_tag: OpenedTag, e: &BytesEnd, state: &mut ParserState) -> Result<()>;
}