//! NAC宪法条款模块 //! 定义和管理NAC宪法条款 use nac_udm::primitives::Hash; use serde::{Deserialize, Serialize}; use std::collections::HashMap; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ConstitutionalClause { pub clause_index: u64, pub title: String, pub content: String, pub clause_hash: Hash, pub effective_from: u64, pub tier: ClauseTier, } #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub enum ClauseTier { Eternal, // 永恒级 Strategic, // 战略级 Tactical, // 战术级 } pub struct ConstitutionRegistry { clauses: HashMap, } impl ConstitutionRegistry { pub fn new() -> Self { Self { clauses: HashMap::new(), } } pub fn add_clause(&mut self, clause: ConstitutionalClause) { self.clauses.insert(clause.clause_index, clause); } pub fn get_clause(&self, index: u64) -> Option<&ConstitutionalClause> { self.clauses.get(&index) } } impl Default for ConstitutionRegistry { fn default() -> Self { Self::new() } }