1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
pub mod expression;
pub mod header_of_array_of_table;
pub mod header_of_table;

use crate::model::{
    layer110::Token,
    layer210::{Comment, WS},
    layer225::Keyval,
};

/// WIP.  

#[derive(Clone)]
pub struct HeaderOfArrayOfTable {
    pub tokens: Vec<Token>,
}

/// Either a Empty-line, Comment, Key Value, Table or a Array-of-table.  

/// 空行、コメント、キー値、テーブル、テーブルの配列のいずれかです。  

#[derive(Clone)]
pub enum Expression {
    HeaderOfArrayOfTable(HeaderOfArrayOfTable),
    EmptyLine(WS, Option<Comment>),
    Keyval(WS, Keyval, WS, Option<Comment>),
    HeaderOfTable(HeaderOfTable),
}

/// WIP.  

#[derive(Clone)]
pub struct HeaderOfTable {
    pub tokens: Vec<Token>,
}