panache_parser/parser/yaml/
model.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
2pub enum YamlInputKind {
3 #[default]
4 Plain,
5 Hashpipe,
6}
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq)]
9pub struct ShadowYamlOptions {
10 pub enabled: bool,
11 pub input_kind: YamlInputKind,
12}
13
14impl Default for ShadowYamlOptions {
15 fn default() -> Self {
16 Self {
17 enabled: false,
18 input_kind: YamlInputKind::Plain,
19 }
20 }
21}
22
23#[derive(Debug, Clone, Copy, PartialEq, Eq)]
24pub enum ShadowYamlOutcome {
25 SkippedDisabled,
26 PrototypeParsed,
27 PrototypeRejected,
28}
29
30#[derive(Debug, Clone, PartialEq, Eq)]
31pub struct ShadowYamlReport {
32 pub outcome: ShadowYamlOutcome,
33 pub shadow_reason: &'static str,
34 pub input_kind: YamlInputKind,
35 pub input_len_bytes: usize,
36 pub line_count: usize,
37 pub normalized_input: Option<String>,
38}
39
40#[derive(Debug, Clone, PartialEq, Eq)]
41pub struct BasicYamlEntry<'a> {
42 pub key: &'a str,
43 pub value: &'a str,
44}
45
46#[derive(Debug, Clone, Copy, PartialEq, Eq)]
47pub enum YamlShadowTokenKind {
48 Indent,
49 Dedent,
50 Key,
51 Colon,
52 Whitespace,
53 Tag,
54 Scalar,
55 Comment,
56 Newline,
57}
58
59#[derive(Debug, Clone, Copy, PartialEq, Eq)]
60pub struct YamlShadowToken<'a> {
61 pub kind: YamlShadowTokenKind,
62 pub text: &'a str,
63}