1pub mod name;
2pub mod value_variant;
3
4pub(crate) mod array_expand;
5pub(crate) mod compiled;
6pub(crate) mod ir;
7pub(crate) mod tokens;
8pub(crate) mod value_render;
9
10pub use tokens::BinXmlTemplateValues;
11
12#[doc(hidden)]
14#[cfg(feature = "bench")]
15pub mod bench {
16 use crate::EvtxChunk;
17 use crate::err::Result;
18 use crate::model::ir::{IrArena, Node};
19 use bumpalo::Bump;
20
21 pub fn write_json_text_content<'a>(
23 writer: &mut Vec<u8>,
24 arena: &'a IrArena<'a>,
25 nodes: &[Node<'a>],
26 ) -> Result<()> {
27 let _ = arena;
28 super::compiled::bench_json_text_content(writer, nodes)
29 }
30
31 pub struct TreeBuildCache<'a> {
33 cache: super::ir::IrTemplateCache<'a>,
34 }
35
36 impl<'a> TreeBuildCache<'a> {
37 pub fn new(chunk: &'a EvtxChunk<'a>) -> Self {
39 TreeBuildCache {
40 cache: super::ir::IrTemplateCache::new(&chunk.arena),
41 }
42 }
43 }
44
45 pub fn build_tree_from_binxml_bytes_in_bump<'a>(
47 bytes: &'a [u8],
48 chunk: &'a EvtxChunk<'a>,
49 cache: &mut TreeBuildCache<'a>,
50 bump: &'a Bump,
51 ) -> Result<usize> {
52 super::ir::bench_build_tree_from_binxml_bytes_direct(bytes, chunk, &mut cache.cache, bump)
53 }
54}