Skip to main content

oak_xml/language/
mod.rs

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