yam_core/tokenizer/
mod.rs

1pub use iterator::Event;
2pub use iterator::EventIterator;
3pub use lexer::Lexer;
4pub use lexer::LexerToken;
5pub use reader::Reader;
6use core::str::from_utf8;
7pub use str_reader::StrReader;
8
9mod iterator;
10mod lexer;
11mod reader;
12mod str_reader;
13
14pub use iterator::assert_eq_event;
15
16use self::lexer::PropType;
17
18#[derive(Copy, Clone, Debug, PartialEq)]
19pub enum ErrorType {
20    AliasAndAnchor,
21    DirectiveEndMark,
22    DuplicateKey,
23    ColonMustBeOnSameLineAsKey,
24    ExpectedChompBetween1and9,
25    ExpectedDocumentStart,
26    ExpectedDocumentStartOrContents,
27    ExpectedDocumentEnd,
28    ExpectedDocumentEndOrContents,
29    ExpectedNodeButFound { found: char },
30    ExpectedMapBlock,
31    ExpectedSeqStart,
32    ExpectedNewline,
33    ExpectedNewlineInFolded,
34    ExpectedIndent { actual: u32, expected: u32 },
35    ExpectedIndentDocStart { actual: u32, expected: u32 },
36    ExpectedWhiteSpaceAfterProperty,
37    ImplicitKeysNeedToBeInline,
38    InvalidAnchorIndent { actual: u32, expected: u32 },
39    InvalidAnchorDeclaration,
40    InvalidCommentStart,
41    InvalidCommentInScalar,
42    InvalidEscapeCharacter,
43    InvalidMappingValue,
44    InvalidMapEnd,
45    InvalidMapItemIndent,
46    InvalidQuoteIndent { actual: u32, expected: u32 },
47    InvalidTagHandleCharacter { found: char },
48    InvalidScalarStart,
49    InvalidScalarAtNodeEnd,
50    InvalidScalarIndent,
51    MissingWhitespaceAfterColon,
52    MissingWhitespaceBeforeComment,
53    MissingFlowClosingBracket,
54    NestedMappingsNotAllowed,
55    NoDocStartAfterTag,
56    NodeWithTwoProperties(PropType),
57    NodeWithTwoTags,
58    PropertyAtStartOfSequence,
59    StartedBlockInFlow,
60    SequenceOnSameLineAsKey,
61    SpacesFoundAfterIndent,
62    TagNotTerminated,
63    TabsNotAllowedAsIndentation,
64    TwoDirectivesFound,
65    UnexpectedEndOfScalar,
66    UnexpectedIndentDocEnd { actual: u32, expected: u32 },
67    UnexpectedComment,
68    UnexpectedCommentInScalar,
69    UnexpectedDirective,
70    UnexpectedEndOfStream,
71    UnexpectedEndOfDocument,
72    UnexpectedEndOfFile,
73    UnexpectedSeqAtNodeEnd,
74    UnexpectedSymbol(char),
75    UnsupportedYamlVersion,
76    UnfinishedTag,
77    UnexpectedScalarAtNodeEnd,
78    YamlMustHaveOnePart,
79}
80
81pub trait Slicer<'a> {
82    fn slice(&self, start: usize, end: usize) -> &'a [u8];
83    fn slice_str(&self, start: usize, end: usize) -> &'a str {
84        from_utf8(self.slice(start, end)).unwrap_or("")
85    }
86}