pub struct RuleContext {
pub marking_type: MarkingType,
pub zone: Option<Zone>,
pub position: Option<DocumentPosition>,
pub page_context: Option<Arc<PageContext>>,
pub corrections: Option<Arc<HashMap<String, String>>>,
}Expand description
Document position context passed to rules alongside parsed markings.
Phase 3 made zone and position Option-typed: the scanner cannot
reliably determine header/footer/body or document position from raw
text alone, so a rule that reads either field must handle None.
They will become populated in a future scanner pass that consumes
document structural metadata (page count, line numbers, header/footer
detection on extracted documents).
page_context is populated by the engine for every non-portion
candidate (Banner, CAB) so banner-validation rules can compare the
observed banner against the composite expected from all preceding
portions. The engine resets it at scanner-emitted MarkingType::PageBreak
candidates (form-feed \f and \n\n\n+ heuristics) so the context
reflects only the current page.
Fields§
§marking_type: MarkingType§zone: Option<Zone>Document zone (header/footer/body/CAB) when known. None in Phase 3
— the scanner cannot prove header vs footer from raw text.
position: Option<DocumentPosition>Coarse document position when known. None in Phase 3.
page_context: Option<Arc<PageContext>>Accumulated portion data for the current page, reset at every
scanner-emitted MarkingType::PageBreak.
corrections: Option<Arc<HashMap<String, String>>>Organization-specific corrections map from config [corrections].
None when no corrections are configured.
Trait Implementations§
Source§impl Clone for RuleContext
impl Clone for RuleContext
Source§fn clone(&self) -> RuleContext
fn clone(&self) -> RuleContext
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more