neutralts/
lib.rs

1#![doc = include_str!("../README.md")]
2
3//  Built-in function layout
4//
5//  .-------------------------------------------------------------> open bif
6//  | .-----------------------------------------------------------> modifier
7//  | |   .-------------------------------------------------------> bif name
8//  | |   |   .---------------------------------------------------> bif name separator
9//  | |   |   |      .--------------------------------------------> bif params
10//  | |   |   |      |       .------------------------------------> params / code separator
11//  | |   |   |      |       |             .----------------------> comment
12//  | |   |   |      |       |             |   .------------------> bif code
13//  | |   |   |      |       |             |   |               .--> close bif
14//  | |   |   |      |       |             |   |               |
15//  v v   v   v      v       v             |   v               v
16//  - - ----- - ------------ -- -----------v------------------ --
17//  {:!snippet; snippet_name >> <div>... {:* ... *:} ...</div> :}
18//  -------------------------------------------------------------
19//          ^  -----------------------------------------------
20//          |                      ^
21//          |                      |
22//          |                      ·------------------------------> bif src
23//          ·-----------------------------------------------------> bif: Built-in function
24
25//  Same level Bif:
26//
27//                  .-----> .-----> {:code;
28//                  |       |           {:code; ... :}
29//                  |       |           {:code; ... :}
30//                  |       |           {:code; ... :}
31//  Level block --> |       ·-----> :}
32//                  |        -----> {:code; ... :}
33//                  |       .-----> {:code;
34//                  |       |           {:code; ... :}
35//                  ·-----> ·-----> :}
36
37//  Flow
38//
39//      .-------------------------------.
40//      │         new Template          │
41//      ·-------------------------------·
42//                     |
43//                     v
44//      .-------------------------------.
45//      │       new BlockParser         │ <------.
46//      |-------------------------------|        |
47//      │      each same level bif      │        |
48//      ·-------------------------------·        |
49//                     |                         |
50//                     v                         |
51//      .-------------------------------.        |
52//      │           new Bif             │        |
53//      |-------------------------------|        |
54//      │         nested bifs? ---------│--------·
55//      ·-------------------------------·
56//                     |
57//                     v
58//          .----------------------.
59//         │       end render       │
60//          ·----------------------·
61
62pub use serde_json::{json, Value};
63
64#[macro_use]
65mod macros;
66
67mod bif;
68mod block_parser;
69pub mod constants;
70mod default_json;
71pub mod doc;
72mod shared;
73mod template;
74pub mod utils;
75
76pub use constants::*;
77pub use default_json::*;
78pub use template::Template;
79pub use utils::*;
80
81// for tests
82pub mod test_helpers;