mavinspect/parser/xml/
context.rs

1use super::entities::deprecated::XmlDeprecated;
2use super::entities::enums::{XmlEnum, XmlEnumEntry, XmlEnumEntryMavCmdParam};
3use super::entities::messages::{XmlMessage, XmlMessageField};
4
5#[derive(Debug, Clone)]
6pub(crate) enum XmlParsingContext {
7    MavLink,
8    Include(String),
9    Version(u8),
10    Dialect(u32),
11    Enum(XmlEnum),
12    EnumEntry(XmlEnumEntry),
13    EnumEntryMavCmdParam(XmlEnumEntryMavCmdParam),
14    Message {
15        msg: XmlMessage,
16        in_extension_section: bool,
17    },
18    MessageField(XmlMessageField),
19    Description(String),
20    Deprecated(XmlDeprecated),
21}
22
23impl XmlParsingContext {
24    pub fn to_tag_str(&self) -> &str {
25        match self {
26            XmlParsingContext::MavLink => "mavlink",
27            XmlParsingContext::Include(_) => "include",
28            XmlParsingContext::Version(_) => "version",
29            XmlParsingContext::Dialect(_) => "dialect",
30            XmlParsingContext::Enum(_) => "enum",
31            XmlParsingContext::EnumEntry(_) => "entry",
32            XmlParsingContext::EnumEntryMavCmdParam(_) => "param",
33            XmlParsingContext::Message { .. } => "message",
34            XmlParsingContext::MessageField(_) => "field",
35            XmlParsingContext::Description(_) => "description",
36            XmlParsingContext::Deprecated(_) => "deprecated",
37        }
38    }
39}