pub mod name;
pub mod value_variant;
pub(crate) mod array_expand;
pub(crate) mod ir;
pub(crate) mod ir_json;
pub(crate) mod ir_xml;
pub(crate) mod tokens;
pub(crate) mod value_render;
pub use tokens::BinXmlTemplateValues;
#[cfg(feature = "bench")]
pub mod bench {
use crate::EvtxChunk;
use crate::err::Result;
use crate::model::ir::{IrArena, Node};
use bumpalo::Bump;
use sonic_rs::writer::WriteExt;
pub fn write_json_text_content<'a, W: WriteExt>(
writer: &mut W,
arena: &'a IrArena<'a>,
nodes: &[Node<'a>],
) -> Result<()> {
super::ir_json::bench_write_json_text_content(writer, arena, nodes)
}
pub struct TreeBuildCache<'a> {
cache: super::ir::IrTemplateCache<'a>,
}
impl<'a> TreeBuildCache<'a> {
pub fn new(chunk: &'a EvtxChunk<'a>) -> Self {
TreeBuildCache {
cache: super::ir::IrTemplateCache::new(&chunk.arena),
}
}
}
pub fn build_tree_from_binxml_bytes_in_bump<'a>(
bytes: &'a [u8],
chunk: &'a EvtxChunk<'a>,
cache: &mut TreeBuildCache<'a>,
bump: &'a Bump,
) -> Result<usize> {
super::ir::bench_build_tree_from_binxml_bytes_direct(bytes, chunk, &mut cache.cache, bump)
}
pub fn build_tree_from_binxml_bytes_direct_in_bump<'a>(
bytes: &'a [u8],
chunk: &'a EvtxChunk<'a>,
cache: &mut TreeBuildCache<'a>,
bump: &'a Bump,
) -> Result<usize> {
super::ir::bench_build_tree_from_binxml_bytes_direct(bytes, chunk, &mut cache.cache, bump)
}
}