NAC_Blockchain/nac-constitution-clauses/src/lib.rs

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()
}
}