mavinspect/parser/xml/
context.rs1use 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}