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 page_context;
14pub mod span;
15pub mod token_set;
16
17// Re-export primary types at crate root for convenience.
18pub use attrs::{
19 Classification, DeclassExemption, DissemControl, IsmAttributes, SarIdentifier, SciControl,
20 TokenKind, TokenSpan, Trigraph,
21};
22pub use generated::values::SCHEMA_VERSION;
23pub use page_context::PageContext;
24pub use span::{DocumentPosition, MarkingCandidate, MarkingType, Span, Zone};
25pub use token_set::{CapcoTokenSet, TokenSet};