Skip to main content

marque_ism/
lib.rs

1//! marque-ism — ISM vocabulary types, generated CVE enums, and core spans.
2//!
3//! This crate is the leaf dependency in the marque workspace. It owns:
4//! - `Span` and scanner candidate types (zero-copy position tracking)
5//! - `IsmAttributes` (the canonical parsed marking representation)
6//! - `TokenSet` trait and `CapcoTokenSet` (Aho-Corasick CVE token matching)
7//! - Generated code from ODNI ISM schemas (CVE enums, validators, migrations)
8//!
9//! **WASM-safe**: no I/O, no format dependencies, no platform-specific code.
10
11pub mod attrs;
12pub mod generated;
13pub mod marking_forms;
14pub mod page_context;
15pub mod span;
16pub mod token_set;
17
18// Re-export primary types at crate root for convenience.
19pub use attrs::{
20    AeaMarking, Classification, DeclassExemption, DissemControl, FgiClassification, FgiMarker,
21    ForeignClassification, FrdBlock, IsmAttributes, JointClassification, MarkingClassification,
22    NatoClassification, NatoLevel, NonIcDissem, RdBlock, SarIdentifier, SciControl, TokenKind,
23    TokenSpan, Trigraph,
24};
25pub use generated::values::SCHEMA_VERSION;
26pub use page_context::PageContext;
27pub use span::{DocumentPosition, MarkingCandidate, MarkingType, Span, Zone};
28pub use token_set::{CapcoTokenSet, TokenSet};