use crate::ArenaVec;
use crate::models::data::Data;
use crate::models::position::Position;
#[derive(Debug, PartialEq)]
pub struct MdxJsxElement<'a, N> {
pub name: Option<&'a str>,
pub attributes: ArenaVec<'a, MdxJsxAttribute<'a>>,
pub children: ArenaVec<'a, N>,
pub position: Option<Position<'a>>,
pub data: Option<&'a Data<'a>>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum MdxJsxAttribute<'a> {
Attribute {
name: &'a str,
value: Option<MdxJsxAttributeValue<'a>>,
position: Option<Position<'a>>,
data: Option<&'a Data<'a>>,
},
Expression {
value: &'a str,
position: Option<Position<'a>>,
data: Option<&'a Data<'a>>,
},
}
#[derive(Clone, Debug, PartialEq)]
pub enum MdxJsxAttributeValue<'a> {
Literal(&'a str),
Expression {
value: &'a str,
data: Option<&'a Data<'a>>,
},
}
#[derive(Clone, Debug, PartialEq)]
pub struct MdxExpression<'a> {
pub value: &'a str,
pub position: Option<Position<'a>>,
pub data: Option<&'a Data<'a>>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct MdxjsEsm<'a> {
pub value: &'a str,
pub position: Option<Position<'a>>,
pub data: Option<&'a Data<'a>>,
}