pub mod condition; pub mod engine; pub mod errors; pub mod loader; pub mod policy; pub mod types; pub mod web; use std::collections::HashMap; use types::{PolicyRule, ResourceDefinition, RoleDef, TupleIndex}; /// Fully compiled authorization state, loaded from KDL policy files. /// Immutable after construction — configuration changes require a service reload. #[derive(Debug)] pub struct AuthzState { /// resource_type -> ResourceDefinition pub resources: HashMap, /// role_name -> RoleDef (permissions + includes) pub roles: HashMap, /// ABAC rules pub rules: Vec, /// All relationship tuples, indexed for fast lookup pub tuples: TupleIndex, /// permission -> list of role names that grant it (pre-computed, includes inheritance) pub permission_roles: HashMap>, }