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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*******************************************************************************
*
* Copyright (c) 2025 - 2026.
* Haixing Hu, Qubit Co. Ltd.
*
* All rights reserved.
*
******************************************************************************/
//! # Value Processing Framework
//!
//! Provides type-safe value storage and access functionality, supporting single values, multiple values, and named values.
//!
//! # Module Description
//!
//! - `error` - Defines error types related to value processing
//! - `value` - Single value container implementation
//! - `multi_values` - Multiple values container implementation
//! - `named` - Named value implementation
//!
//! # Core Features
//!
//! - **Type Safety**: Compile-time type checking to avoid runtime type errors
//! - **Zero-Cost Abstraction**: Implemented using enums with no additional runtime overhead
//! - **Multi-Value Support**: Unified interface for single and multiple value access
//! - **Naming Support**: Provides naming functionality for values for easy identification and lookup
//! - **Type Conversion**: Provides two sets of APIs for type checking and type conversion
//!
//! # Usage Examples
//!
//! ## Single Value Operations
//!
//! ```rust,ignore
//! use common_rs::util::value::Value;
//!
//! // Create and access a single value
//! let value = Value::Int32(42);
//! assert_eq!(value.get_int32().unwrap(), 42);
//!
//! // Type conversion
//! let text = value.to::<String>().unwrap();
//! assert_eq!(text, "42");
//! ```
//!
//! ## Multiple Values Operations
//!
//! ```rust,ignore
//! use common_rs::util::value::MultiValues;
//!
//! // Create and access multiple values
//! let mut values = MultiValues::Int32(vec![1, 2, 3]);
//! assert_eq!(values.count(), 3);
//!
//! // Add values
//! values.add_int32(4).unwrap();
//! assert_eq!(values.get_int32s().unwrap(), &[1, 2, 3, 4]);
//! ```
//!
//! ## Named Value Operations
//!
//! ```rust,ignore
//! use common_rs::util::value::{NamedValue, Value};
//!
//! // Create a named value
//! let config = NamedValue::new("port", Value::Int32(8080));
//! assert_eq!(config.name(), "port");
//! assert_eq!(config.get_int32().unwrap(), 8080);
//! ```
//!
//! # Author
//!
//! Haixing Hu
// Sub-modules
// Public exports
pub use ;
pub use MultiValues;
pub use NamedMultiValues;
pub use NamedValue;
pub use Value;