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