textlane_core/models/
mdx.rs1use crate::ArenaVec;
2use crate::models::data::Data;
3use crate::models::position::Position;
4
5#[derive(Debug, PartialEq)]
8pub struct MdxJsxElement<'a, N> {
9 pub name: Option<&'a str>,
10 pub attributes: ArenaVec<'a, MdxJsxAttribute<'a>>,
11 pub children: ArenaVec<'a, N>,
12 pub position: Option<Position<'a>>,
13 pub data: Option<&'a Data<'a>>,
15}
16
17#[derive(Clone, Debug, PartialEq)]
20pub enum MdxJsxAttribute<'a> {
21 Attribute {
22 name: &'a str,
23 value: Option<MdxJsxAttributeValue<'a>>,
24 position: Option<Position<'a>>,
25 data: Option<&'a Data<'a>>,
26 },
27 Expression {
28 value: &'a str,
29 position: Option<Position<'a>>,
30 data: Option<&'a Data<'a>>,
31 },
32}
33
34#[derive(Clone, Debug, PartialEq)]
36pub enum MdxJsxAttributeValue<'a> {
37 Literal(&'a str),
38 Expression {
39 value: &'a str,
40 data: Option<&'a Data<'a>>,
41 },
42}
43
44#[derive(Clone, Debug, PartialEq)]
46pub struct MdxExpression<'a> {
47 pub value: &'a str,
48 pub position: Option<Position<'a>>,
49 pub data: Option<&'a Data<'a>>,
51}
52
53#[derive(Clone, Debug, PartialEq)]
55pub struct MdxjsEsm<'a> {
56 pub value: &'a str,
57 pub position: Option<Position<'a>>,
58 pub data: Option<&'a Data<'a>>,
60}