use std::collections::BTreeMap;
use zenith_core::{BlockStyle, FontProvider, ResolvedToken, Style};
use zenith_layout::RustybuzzEngine;
use super::ComponentMap;
use super::anchor::AnchorMap;
use super::chain::ChainAssignments;
use super::field::FieldCtx;
use super::markdown_resolve::MdBlockMap;
use super::table_flow::TableFlowAssignments;
#[derive(Clone, Copy)]
pub(in crate::compile) struct NodeCtx<'a> {
pub(in crate::compile) resolved: &'a BTreeMap<String, ResolvedToken>,
pub(in crate::compile) style_map: &'a BTreeMap<&'a str, &'a Style>,
pub(in crate::compile) components: &'a ComponentMap<'a>,
pub(in crate::compile) fonts: &'a dyn FontProvider,
pub(in crate::compile) engine: &'a RustybuzzEngine,
pub(in crate::compile) chains: &'a ChainAssignments,
pub(in crate::compile) flows: &'a TableFlowAssignments,
pub(in crate::compile) anchors: &'a AnchorMap,
pub(in crate::compile) field_ctx: &'a FieldCtx<'a>,
pub(in crate::compile) md_blocks: &'a MdBlockMap,
pub(in crate::compile) page_block_styles: &'a [BlockStyle],
pub(in crate::compile) doc_block_styles: &'a [BlockStyle],
}