permission_translation/lib.rs
1//! # Permission Translation Library
2//!
3//! A Rust library for translating hexadecimal permission values into human-readable capability sets.
4//! This library provides functionality to define permission descriptors, validate permission values,
5//! and extract individual capabilities from combined permission hex values.
6//!
7//! ## Features
8//!
9//! - **Permission Validation**: Validate hex permission values against capability descriptors
10//! - **Capability Extraction**: Extract individual capabilities from combined permission values
11//! - **Human-Readable Translation**: Convert hex values to readable capability names
12//! - **Flexible Descriptors**: Define custom capability descriptors for different permission systems
13//!
14//! ## Example Usage
15//!
16//! ```rust
17//! use permission_translation::{
18//! models::{CapabilityDescriptor, CapilityHexValue},
19//! role_capability::RoleCapability,
20//! checks::is_valid_hex,
21//! };
22//!
23//! // Create a capability descriptor
24//! let mut descriptor = CapabilityDescriptor::new();
25//! descriptor.insert("Administrator".to_string(), 0x1);
26//! descriptor.insert("ManageServer".to_string(), 0x2);
27//! descriptor.insert("ManageRoles".to_string(), 0x4);
28//!
29//! // Create a role with combined permissions
30//! let permission_value: CapilityHexValue = 0x3; // Administrator + ManageServer
31//! let role = RoleCapability::new(descriptor.clone(), permission_value);
32//!
33//! // Validate the permission value
34//! assert!(is_valid_hex(permission_value, &descriptor));
35//!
36//! // Get human-readable capabilities
37//! let capabilities = role.to_name_set();
38//! assert!(capabilities.contains("Administrator"));
39//! assert!(capabilities.contains("ManageServer"));
40//! ```
41//!
42//! ## Examples
43//!
44//! The library comes with several examples demonstrating different use cases:
45//!
46//! - **Quick Start**: `cargo run --example quick_start`
47//! - Minimal example showing the most common usage patterns
48//!
49//! - **Basic Usage**: `cargo run --example basic_usage`
50//! - Comprehensive demonstration of all library features
51//!
52//! - **Validation Showcase**: `cargo run --example validation_showcase`
53//! - Advanced validation features and edge cases
54//!
55//! ## Modules
56//!
57//! - [`models`]: Core type definitions and data structures
58//! - [`checks`]: Validation functions for permission values and descriptors
59//! - [`role_capability`]: Main struct for working with role permissions
60
61pub mod checks;
62pub mod models;
63pub mod role_capability;