pub struct NamedMultiValues { /* private fields */ }Expand description
Named multiple values
A container that associates a readable name with a set of MultiValues,
suitable for organizing data in key-value (name-multiple values) scenarios,
such as configuration items, command-line parameter aggregation, structured
log fields, etc.
§Features
- Provides clear name identification for multiple value collections
- Exposes the inner
MultiValuesthrough explicit accessors - Supports
serdeserialization and deserialization
§Use Cases
- Aggregating a set of ports, hostnames, etc., as semantically meaningful fields
- Outputting named multiple value lists in configurations/logs
§Examples
use qubit_value::{NamedMultiValues, MultiValues};
// Identify a group of ports with the name "ports"
let named = NamedMultiValues::new(
"ports",
MultiValues::Int32(vec![8080, 8081, 8082])
);
assert_eq!(named.name(), "ports");
assert_eq!(named.values().len(), 3);The wrapper intentionally does not forward MultiValues methods
implicitly:
use qubit_value::{MultiValues, NamedMultiValues};
let named = NamedMultiValues::new("ports", MultiValues::Int32(vec![8080]));
let _ = named.len();Implementations§
Source§impl NamedMultiValues
impl NamedMultiValues
Sourcepub fn new(name: impl Into<String>, value: MultiValues) -> Self
pub fn new(name: impl Into<String>, value: MultiValues) -> Self
Create a new named multiple values
Associates a given name with MultiValues, generating a container that
can be referenced by name.
§Use Cases
- Building configuration fields (e.g.,
servers,ports, etc.) - Binding parsed multiple value results to semantic names
§Parameters
name- Name of the multiple valuesvalue- Content of the multiple values
§Returns
Returns a newly created named multiple values
§Examples
use qubit_value::{NamedMultiValues, MultiValues};
let named = NamedMultiValues::new(
"servers",
MultiValues::String(vec!["s1".to_string(), "s2".to_string()])
);
assert_eq!(named.name(), "servers");Sourcepub fn decode_json_slice(input: &[u8]) -> Result<Self, ValueWireDecodeError>
pub fn decode_json_slice(input: &[u8]) -> Result<Self, ValueWireDecodeError>
Sourcepub fn decode_json_slice_with_limits(
input: &[u8],
limits: WireLimits,
) -> Result<Self, ValueWireDecodeError>
pub fn decode_json_slice_with_limits( input: &[u8], limits: WireLimits, ) -> Result<Self, ValueWireDecodeError>
Decodes a complete named collection JSON document with explicit limits.
The wrapper name and nested collection share one accounting session.
§Parameters
input- Complete UTF-8 JSON document to decode.limits- Input and decoded-resource limits.
§Returns
The decoded named collection.
§Errors
Returns a JSON, wire-contract, or resource-limit error.
Sourcepub fn values(&self) -> &MultiValues
pub fn values(&self) -> &MultiValues
Sourcepub fn values_mut(&mut self) -> &mut MultiValues
pub fn values_mut(&mut self) -> &mut MultiValues
Sourcepub fn set_values(&mut self, values: MultiValues)
pub fn set_values(&mut self, values: MultiValues)
Replaces the contained values.
§Parameters
values- New collection to store under the existing name.
Sourcepub fn into_parts(self) -> (String, MultiValues)
pub fn into_parts(self) -> (String, MultiValues)
Consumes this wrapper and returns its owned name and values.
§Returns
The (name, values) pair without cloning either component.
Sourcepub fn first_named_value(&self) -> NamedValue
pub fn first_named_value(&self) -> NamedValue
Convert this named multi-values into a named single value.
The returned value keeps the same name and uses the first element from
the inner MultiValues. If there is no element, the returned value is
Value::Unset with the same data type.
§Returns
A named clone of the first item, or a named typed unset value.
Sourcepub fn into_first_named_value(self) -> NamedValue
pub fn into_first_named_value(self) -> NamedValue
Consumes this container and converts its first item to a named value.
The owned name and first stored item are moved into the result. An empty
or unset collection produces crate::Value::Unset with the same data
type.
§Returns
A named owned first item, or a named typed unset value.
Trait Implementations§
Source§impl Clone for NamedMultiValues
impl Clone for NamedMultiValues
Source§fn clone(&self) -> NamedMultiValues
fn clone(&self) -> NamedMultiValues
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NamedMultiValues
impl Debug for NamedMultiValues
Source§impl<'de> Deserialize<'de> for NamedMultiValues
impl<'de> Deserialize<'de> for NamedMultiValues
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserializes a named collection from the V1 wire contract.
impl Eq for NamedMultiValues
Source§impl From<NamedValue> for NamedMultiValues
impl From<NamedValue> for NamedMultiValues
Source§fn from(named: NamedValue) -> Self
fn from(named: NamedValue) -> Self
Construct NamedMultiValues from NamedValue
Reuses the name and promotes the single value to a MultiValues
containing only one element.
Source§impl Hash for NamedMultiValues
impl Hash for NamedMultiValues
Source§impl PartialEq for NamedMultiValues
impl PartialEq for NamedMultiValues
Source§impl Redact for NamedMultiValues
impl Redact for NamedMultiValues
Source§fn redacted(&self) -> Redacted<'_, Self>where
Self: Sized,
fn redacted(&self) -> Redacted<'_, Self>where
Self: Sized,
Source§fn redacted_with(&self, policy: &RedactionPolicy) -> Redacted<'_, Self>where
Self: Sized,
fn redacted_with(&self, policy: &RedactionPolicy) -> Redacted<'_, Self>where
Self: Sized,
policy. Read more