#![doc = include_str!("readme.md")]
#[cfg(feature = "serde")]
mod de;
#[cfg(feature = "serde")]
mod ser;
#[cfg(feature = "serde")]
mod value;
pub use self::{
de::{deserialize, from_str},
ser::{serialize, to_string},
value::{TomlArray, TomlTable, TomlValue},
};
use crate::{ast::TomlRoot, lexer::token_type::TomlTokenKind, parser::element_type::TomlElementType};
use oak_core::{Language, LanguageCategory};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct TomlLanguage {
pub multiline_inline_table: bool,
}
impl TomlLanguage {
pub fn new() -> Self {
Self { multiline_inline_table: false }
}
pub fn with_multiline_inline_table(self, enable: bool) -> Self {
Self { multiline_inline_table: enable, ..self }
}
}
impl Language for TomlLanguage {
const NAME: &'static str = "toml";
const CATEGORY: LanguageCategory = LanguageCategory::Config;
type TokenType = TomlTokenKind;
type ElementType = TomlElementType;
type TypedRoot = TomlRoot;
}