Skip to main content

oak_csv/language/
mod.rs

1#![doc = include_str!("readme.md")]
2use crate::{lexer::token_type::CsvTokenType, parser::element_type::CsvElementType};
3use oak_core::{Language, LanguageCategory};
4#[cfg(feature = "serde")]
5use serde::{Deserialize, Serialize};
6
7/// Oaks 框架的 CSV 语言实现。
8#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
9#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
10pub struct CsvLanguage {}
11
12impl CsvLanguage {
13    /// 创建一个新的 `CsvLanguage` 实例。
14    pub fn new() -> Self {
15        Self {}
16    }
17}
18
19impl Language for CsvLanguage {
20    const NAME: &'static str = "csv";
21    const CATEGORY: LanguageCategory = LanguageCategory::Config;
22
23    type TokenType = CsvTokenType;
24    type ElementType = CsvElementType;
25    type TypedRoot = ();
26}