#![allow(unused_doc_comments)]
pub use from_wire::from_wire;
pub use scan_database_budget::{
validate_scan_construct_decode_budget, validate_scan_database_decode_budget,
ScanConstructDecodeBudget, ScanConstructDecodeBudgetEvidence,
ScanConstructDecodeShape, ScanDatabaseDecodeBudget, ScanDatabaseDecodeBudgetError,
ScanDatabaseDecodeBudgetEvidence, ScanDatabaseDecodeShape,
};
#[inline]
pub(crate) fn reject_reserved_extension_id(raw: u32, surface: &str) -> Result<u32, String> {
if (raw & 0x8000_0000) == 0 {
return Err(format!(
"InvalidDiscriminant: {surface} opaque id 0x{raw:08x} collides with core IR. Fix: dialect extensions must use ids in 0x8000_0000..=0xffff_ffff."
));
}
Ok(raw)
}
pub mod from_wire;
pub mod impl_reader;
pub(crate) mod invariants;
pub mod scan_database_budget;