Skip to main content

oak_xml/language/
mod.rs

1#![doc = include_str!("readme.md")]
2
3use oak_core::{Language, LanguageCategory};
4
5/// XML value representation.
6pub mod value;
7pub use value::XmlValue;
8
9#[cfg(feature = "serde")]
10/// Serialization and deserialization utilities for XML.
11pub mod serde;
12#[cfg(feature = "serde")]
13pub use serde::{from_value, to_value};
14
15/// XML language.
16#[derive(Debug, Clone)]
17#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
18pub struct XmlLanguage {}
19
20impl XmlLanguage {
21    /// Creates a new `XmlLanguage`.
22    pub fn new() -> Self {
23        Self {}
24    }
25}
26
27impl Default for XmlLanguage {
28    fn default() -> Self {
29        Self {}
30    }
31}
32
33impl Language for XmlLanguage {
34    const NAME: &'static str = "xml";
35    const CATEGORY: LanguageCategory = LanguageCategory::Markup;
36
37    type TokenType = crate::lexer::token_type::XmlTokenType;
38    type ElementType = crate::parser::element_type::XmlElementType;
39    type TypedRoot = crate::ast::XmlRoot;
40}