mod events;
mod loader;
mod scanner;
pub(crate) use events::{Event, Parser};
pub(crate) use loader::{DuplicateKeyPolicy as InternalDuplicateKeyPolicy, ParseConfig};
pub(crate) use scanner::ScalarStyle;
#[cfg(feature = "std")]
pub(crate) use scanner::{
RecordedToken, RecordedTokenKind, ScannedComment, Scanner, TokenKind, Trivia, TriviaKind,
};
pub(crate) fn scanner_span_default() -> scanner::Span {
scanner::Span::default()
}
use crate::error::Result;
#[allow(unused_imports)]
use crate::prelude::*;
#[cfg(feature = "std")]
use crate::span_context::SpanTree;
use crate::value::Value;
#[cfg(feature = "std")]
pub(crate) fn parse(input: &str, config: &ParseConfig) -> Result<Vec<(Value, SpanTree)>> {
let mut parser = Parser::new(input);
loader::load(&mut parser, config, input)
}
#[cfg(feature = "std")]
pub(crate) fn parse_one(input: &str, config: &ParseConfig) -> Result<(Value, SpanTree)> {
let mut parser = Parser::new(input);
loader::load_one(&mut parser, config, input)
}
pub(crate) fn parse_one_value(input: &str, config: &ParseConfig) -> Result<Value> {
loader::load_one_no_spans(input, config)
}
#[cfg(not(feature = "std"))]
pub(crate) fn parse_all_values(input: &str, config: &ParseConfig) -> Result<Vec<Value>> {
loader::load_all_no_spans(input, config)
}