Struct valuable::NamedValues
source · pub struct NamedValues<'a> { /* private fields */ }
Expand description
Set of values from a Structable
or Enumerable
with named fields.
Implementations§
source§impl<'a> NamedValues<'a>
impl<'a> NamedValues<'a>
sourcepub fn new(
fields: &'a [NamedField<'a>],
values: &'a [Value<'a>]
) -> NamedValues<'a>
pub fn new( fields: &'a [NamedField<'a>], values: &'a [Value<'a>] ) -> NamedValues<'a>
Create a new NamedValues
instance.
Both fields
and values
must be the same length.
Panics
The method panics if fields
and values
are different lengths.
Examples
use valuable::{NamedField, NamedValues, Value};
let fields = [
NamedField::new("foo"),
NamedField::new("bar")
];
let values = [
Value::U32(123),
Value::U32(456),
];
let named_values = NamedValues::new(&fields, &values);
assert_eq!(
named_values.get(&fields[0]).unwrap().as_u32(),
Some(123));
sourcepub fn get(&self, field: &NamedField<'_>) -> Option<&Value<'_>>
pub fn get(&self, field: &NamedField<'_>) -> Option<&Value<'_>>
Get a value using a NamedField
reference.
Examples
use valuable::{NamedField, NamedValues, Value};
let fields = [
NamedField::new("foo"),
NamedField::new("bar")
];
let values = [
Value::U32(123),
Value::U32(456),
];
let named_values = NamedValues::new(&fields, &values);
assert_eq!(
named_values.get(&fields[0]).unwrap().as_u32(),
Some(123));
sourcepub fn get_by_name(&self, name: impl AsRef<str>) -> Option<&Value<'_>>
pub fn get_by_name(&self, name: impl AsRef<str>) -> Option<&Value<'_>>
Get a value using string.
Examples
use valuable::{NamedField, NamedValues, Value};
let fields = [
NamedField::new("foo"),
NamedField::new("bar")
];
let values = [
Value::U32(123),
Value::U32(456),
];
let named_values = NamedValues::new(&fields, &values);
assert_eq!(
named_values.get_by_name("foo").unwrap().as_u32(),
Some(123));
sourcepub fn iter<'b>(&'b self) -> Iter<'a, 'b>
pub fn iter<'b>(&'b self) -> Iter<'a, 'b>
Iterate all name-value pairs.
Examples
use valuable::{NamedField, NamedValues, Value};
let fields = [
NamedField::new("foo"),
NamedField::new("bar")
];
let values = [
Value::U32(123),
Value::U32(456),
];
let named_values = NamedValues::new(&fields, &values);
for (field, value) in named_values.iter() {
println!("{:?}: {:?}", field, value);
}