50 lines
1.1 KiB
Rust
50 lines
1.1 KiB
Rust
//! 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<u64, ConstitutionalClause>,
|
|
}
|
|
|
|
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()
|
|
}
|
|
}
|