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
- Transparently reuses all capabilities of
MultiValuesthroughDeref/DerefMut - 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
§Example
use common_rs::util::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.count(), 3);§Author
Haixing Hu
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
§Example
use common_rs::util::value::{NamedMultiValues, MultiValues};
let named = NamedMultiValues::new(
"servers",
MultiValues::String(vec!["s1".to_string(), "s2".to_string()])
);
assert_eq!(named.name(), "servers");Methods from Deref<Target = MultiValues>§
Sourcepub fn get<T>(&self) -> ValueResult<Vec<T>>where
Self: MultiValuesGetter<T>,
pub fn get<T>(&self) -> ValueResult<Vec<T>>where
Self: MultiValuesGetter<T>,
Generic getter method for multiple values
Automatically selects the correct getter method based on the target type, performing strict type checking.
§Type Parameters
T- The target element type to retrieve
§Returns
If types match, returns the list of values; otherwise returns an error
§Example
use crate::util::value::MultiValues;
let multi = MultiValues::Int32(vec![1, 2, 3]);
// Through type inference
let nums: Vec<i32> = multi.get().unwrap();
assert_eq!(nums, vec![1, 2, 3]);
// Explicitly specify type parameter
let nums = multi.get::<i32>().unwrap();
assert_eq!(nums, vec![1, 2, 3]);Sourcepub fn get_first<T>(&self) -> ValueResult<T>where
Self: MultiValuesFirstGetter<T>,
pub fn get_first<T>(&self) -> ValueResult<T>where
Self: MultiValuesFirstGetter<T>,
Generic getter method for the first value
Automatically selects the correct getter method based on the target type, performing strict type checking.
§Type Parameters
T- The target element type to retrieve
§Returns
If types match and a value exists, returns the first value; otherwise returns an error
§Example
use crate::util::value::MultiValues;
let multi = MultiValues::Int32(vec![42, 100, 200]);
// Through type inference
let first: i32 = multi.get_first().unwrap();
assert_eq!(first, 42);
// Explicitly specify type parameter
let first = multi.get_first::<i32>().unwrap();
assert_eq!(first, 42);
// String type
let multi = MultiValues::String(vec!["hello".to_string(), "world".to_string()]);
let first: String = multi.get_first().unwrap();
assert_eq!(first, "hello");Sourcepub fn set<'a, S>(&mut self, values: S) -> ValueResult<()>where
S: MultiValuesSetArg<'a>,
Self: MultiValuesSetter<S::Item> + MultiValuesSetterSlice<S::Item> + MultiValuesSingleSetter<S::Item>,
pub fn set<'a, S>(&mut self, values: S) -> ValueResult<()>where
S: MultiValuesSetArg<'a>,
Self: MultiValuesSetter<S::Item> + MultiValuesSetterSlice<S::Item> + MultiValuesSingleSetter<S::Item>,
Generic setter method
Automatically selects the optimal setter path based on the input type, replacing the entire list with strict type checking. Supports three input forms, all unified to this method via internal dispatch traits:
Vec<T>: Takesset_values(Vec<T>)path with zero additional allocation&[T]: Takesset_values_slice(&[T])pathT: Takesset_single_value(T)path
§Type Parameters
S- Input type, can beVec<T>,&[T], or a singleT
§Parameters
values- The value collection to set, can beVec<T>,&[T], or a singleT
§Returns
If setting succeeds, returns Ok(()); otherwise returns an error
§Example
use crate::lang::DataType;
use crate::util::value::MultiValues;
// 1) Vec<T>
let mut mv = MultiValues::Empty(DataType::Int32);
mv.set(vec![42, 100, 200]).unwrap();
assert_eq!(mv.get_int32s().unwrap(), &[42, 100, 200]);
// 2) &[T]
let mut mv = MultiValues::Empty(DataType::Int32);
let slice = &[7, 8, 9][..];
mv.set(slice).unwrap();
assert_eq!(mv.get_int32s().unwrap(), &[7, 8, 9]);
// 3) Single T
let mut mv = MultiValues::Empty(DataType::Int32);
mv.set(42).unwrap();
assert_eq!(mv.get_int32s().unwrap(), &[42]);
// String example
let mut mv = MultiValues::Empty(DataType::String);
mv.set(vec!["hello".to_string(), "world".to_string()]).unwrap();
assert_eq!(mv.get_strings().unwrap(), &["hello", "world"]);Sourcepub fn add<'a, S>(&mut self, values: S) -> ValueResult<()>where
S: MultiValuesAddArg<'a>,
Self: MultiValuesAdder<S::Item> + MultiValuesMultiAdder<S::Item>,
pub fn add<'a, S>(&mut self, values: S) -> ValueResult<()>where
S: MultiValuesAddArg<'a>,
Self: MultiValuesAdder<S::Item> + MultiValuesMultiAdder<S::Item>,
Generic add method
Automatically selects the optimal add path based on the input type, appending elements to the existing list with strict type checking. Supports three input forms:
T: Takesadd_value(T)path, appending a single elementVec<T>: Takesadd_values(Vec<T>)path, batch append (zero additional allocation)&[T]: Takesadd_values_slice(&[T])path, batch append (using slice)
§Type Parameters
S- Input type, can be a singleT,Vec<T>, or&[T]
§Example
use crate::lang::DataType;
use crate::util::value::MultiValues;
// 1) Single T
let mut mv = MultiValues::Int32(vec![42]);
mv.add(100).unwrap();
assert_eq!(mv.get_int32s().unwrap(), &[42, 100]);
// 2) Vec<T>
mv.add(vec![200, 300]).unwrap();
assert_eq!(mv.get_int32s().unwrap(), &[42, 100, 200, 300]);
// 3) &[T]
let slice = &[400, 500][..];
mv.add(slice).unwrap();
assert_eq!(mv.get_int32s().unwrap(), &[42, 100, 200, 300, 400, 500]);Sourcepub fn count(&self) -> usize
pub fn count(&self) -> usize
Get the number of values
§Returns
Returns the number of values contained in these multiple values
§Example
use crate::util::value::MultiValues;
let values = MultiValues::Int32(vec![1, 2, 3]);
assert_eq!(values.count(), 3);
let empty = MultiValues::Empty(DataType::String);
assert_eq!(empty.count(), 0);Sourcepub fn set_type(&mut self, data_type: DataType)
pub fn set_type(&mut self, data_type: DataType)
Set the data type
If the new type differs from the current type, clears all values and sets the new type.
§Parameters
data_type- The data type to set
§Example
use crate::util::value::{MultiValues, DataType};
let mut values = MultiValues::Int32(vec![1, 2, 3]);
values.set_type(DataType::String);
assert!(values.is_empty());
assert_eq!(values.data_type(), DataType::String);Sourcepub fn get_first_bool(&self) -> ValueResult<bool>
pub fn get_first_bool(&self) -> ValueResult<bool>
Sourcepub fn get_first_char(&self) -> ValueResult<char>
pub fn get_first_char(&self) -> ValueResult<char>
Get the first character value
§Returns
If types match and a value exists, returns the first character value; otherwise returns an error
Sourcepub fn get_first_int8(&self) -> ValueResult<i8>
pub fn get_first_int8(&self) -> ValueResult<i8>
Get the first int8 value
§Returns
If types match and a value exists, returns the first int8 value; otherwise returns an error
Sourcepub fn get_first_int16(&self) -> ValueResult<i16>
pub fn get_first_int16(&self) -> ValueResult<i16>
Get the first int16 value
§Returns
If types match and a value exists, returns the first int16 value; otherwise returns an error
Sourcepub fn get_first_int32(&self) -> ValueResult<i32>
pub fn get_first_int32(&self) -> ValueResult<i32>
Get the first int32 value
§Returns
If types match and a value exists, returns the first int32 value; otherwise returns an error
Sourcepub fn get_first_int64(&self) -> ValueResult<i64>
pub fn get_first_int64(&self) -> ValueResult<i64>
Get the first int64 value
§Returns
If types match and a value exists, returns the first int64 value; otherwise returns an error
Sourcepub fn get_first_int128(&self) -> ValueResult<i128>
pub fn get_first_int128(&self) -> ValueResult<i128>
Get the first int128 value
§Returns
If types match and a value exists, returns the first int128 value; otherwise returns an error
Sourcepub fn get_first_uint8(&self) -> ValueResult<u8>
pub fn get_first_uint8(&self) -> ValueResult<u8>
Get the first uint8 value
§Returns
If types match and a value exists, returns the first uint8 value; otherwise returns an error
Sourcepub fn get_first_uint16(&self) -> ValueResult<u16>
pub fn get_first_uint16(&self) -> ValueResult<u16>
Get the first uint16 value
§Returns
If types match and a value exists, returns the first uint16 value; otherwise returns an error
Sourcepub fn get_first_uint32(&self) -> ValueResult<u32>
pub fn get_first_uint32(&self) -> ValueResult<u32>
Get the first uint32 value
§Returns
If types match and a value exists, returns the first uint32 value; otherwise returns an error
Sourcepub fn get_first_uint64(&self) -> ValueResult<u64>
pub fn get_first_uint64(&self) -> ValueResult<u64>
Get the first uint64 value
§Returns
If types match and a value exists, returns the first uint64 value; otherwise returns an error
Sourcepub fn get_first_uint128(&self) -> ValueResult<u128>
pub fn get_first_uint128(&self) -> ValueResult<u128>
Get the first uint128 value
§Returns
If types match and a value exists, returns the first uint128 value; otherwise returns an error
Sourcepub fn get_first_float32(&self) -> ValueResult<f32>
pub fn get_first_float32(&self) -> ValueResult<f32>
Get the first float32 value
§Returns
If types match and a value exists, returns the first float32 value; otherwise returns an error
Sourcepub fn get_first_float64(&self) -> ValueResult<f64>
pub fn get_first_float64(&self) -> ValueResult<f64>
Get the first float64 value
§Returns
If types match and a value exists, returns the first float64 value; otherwise returns an error
Sourcepub fn get_first_string(&self) -> ValueResult<&str>
pub fn get_first_string(&self) -> ValueResult<&str>
Get the first string reference
§Returns
If types match and a value exists, returns a reference to the first string; otherwise returns an error
Sourcepub fn get_first_date(&self) -> ValueResult<NaiveDate>
pub fn get_first_date(&self) -> ValueResult<NaiveDate>
Get the first date value
§Returns
If types match and a value exists, returns the first date value; otherwise returns an error
Sourcepub fn get_first_time(&self) -> ValueResult<NaiveTime>
pub fn get_first_time(&self) -> ValueResult<NaiveTime>
Get the first time value
§Returns
If types match and a value exists, returns the first time value; otherwise returns an error
Sourcepub fn get_first_datetime(&self) -> ValueResult<NaiveDateTime>
pub fn get_first_datetime(&self) -> ValueResult<NaiveDateTime>
Get the first datetime value
§Returns
If types match and a value exists, returns the first datetime value; otherwise returns an error
Sourcepub fn get_first_instant(&self) -> ValueResult<DateTime<Utc>>
pub fn get_first_instant(&self) -> ValueResult<DateTime<Utc>>
Get the first UTC instant value
§Returns
If types match and a value exists, returns the first UTC instant value; otherwise returns an error
Sourcepub fn get_first_biginteger(&self) -> ValueResult<BigInt>
pub fn get_first_biginteger(&self) -> ValueResult<BigInt>
Get the first big integer value
§Returns
If types match and a value exists, returns the first big integer value; otherwise returns an error
Sourcepub fn get_first_bigdecimal(&self) -> ValueResult<BigDecimal>
pub fn get_first_bigdecimal(&self) -> ValueResult<BigDecimal>
Get the first big decimal value
§Returns
If types match and a value exists, returns the first big decimal value; otherwise returns an error
Sourcepub fn get_bools(&self) -> ValueResult<&[bool]>
pub fn get_bools(&self) -> ValueResult<&[bool]>
Get reference to all boolean values
§Returns
If types match, returns a reference to the boolean value array; otherwise returns an error
§Example
use crate::util::value::MultiValues;
let values = MultiValues::Bool(vec![true, false, true]);
assert_eq!(values.get_bools().unwrap(), &[true, false, true]);Sourcepub fn get_chars(&self) -> ValueResult<&[char]>
pub fn get_chars(&self) -> ValueResult<&[char]>
Get reference to all character values
§Returns
If types match, returns a reference to the character value array; otherwise returns an error
Sourcepub fn get_int8s(&self) -> ValueResult<&[i8]>
pub fn get_int8s(&self) -> ValueResult<&[i8]>
Get reference to all int8 values
§Returns
If types match, returns a reference to the int8 value array; otherwise returns an error
Sourcepub fn get_int16s(&self) -> ValueResult<&[i16]>
pub fn get_int16s(&self) -> ValueResult<&[i16]>
Get reference to all int16 values
§Returns
If types match, returns a reference to the int16 value array; otherwise returns an error
Sourcepub fn get_int32s(&self) -> ValueResult<&[i32]>
pub fn get_int32s(&self) -> ValueResult<&[i32]>
Get reference to all int32 values
§Returns
If types match, returns a reference to the int32 value array; otherwise returns an error
Sourcepub fn get_int64s(&self) -> ValueResult<&[i64]>
pub fn get_int64s(&self) -> ValueResult<&[i64]>
Get reference to all int64 values
§Returns
If types match, returns a reference to the int64 value array; otherwise returns an error
Sourcepub fn get_int128s(&self) -> ValueResult<&[i128]>
pub fn get_int128s(&self) -> ValueResult<&[i128]>
Get reference to all int128 values
§Returns
If types match, returns a reference to the int128 value array; otherwise returns an error
Sourcepub fn get_uint8s(&self) -> ValueResult<&[u8]>
pub fn get_uint8s(&self) -> ValueResult<&[u8]>
Get reference to all uint8 values
§Returns
If types match, returns a reference to the uint8 value array; otherwise returns an error
Sourcepub fn get_uint16s(&self) -> ValueResult<&[u16]>
pub fn get_uint16s(&self) -> ValueResult<&[u16]>
Get reference to all uint16 values
§Returns
If types match, returns a reference to the uint16 value array; otherwise returns an error
Sourcepub fn get_uint32s(&self) -> ValueResult<&[u32]>
pub fn get_uint32s(&self) -> ValueResult<&[u32]>
Get reference to all uint32 values
§Returns
If types match, returns a reference to the uint32 value array; otherwise returns an error
Sourcepub fn get_uint64s(&self) -> ValueResult<&[u64]>
pub fn get_uint64s(&self) -> ValueResult<&[u64]>
Get reference to all uint64 values
§Returns
If types match, returns a reference to the uint64 value array; otherwise returns an error
Sourcepub fn get_uint128s(&self) -> ValueResult<&[u128]>
pub fn get_uint128s(&self) -> ValueResult<&[u128]>
Get reference to all uint128 values
§Returns
If types match, returns a reference to the uint128 value array; otherwise returns an error
Sourcepub fn get_float32s(&self) -> ValueResult<&[f32]>
pub fn get_float32s(&self) -> ValueResult<&[f32]>
Get reference to all float32 values
§Returns
If types match, returns a reference to the float32 value array; otherwise returns an error
Sourcepub fn get_float64s(&self) -> ValueResult<&[f64]>
pub fn get_float64s(&self) -> ValueResult<&[f64]>
Get reference to all float64 values
§Returns
If types match, returns a reference to the float64 value array; otherwise returns an error
Sourcepub fn get_strings(&self) -> ValueResult<&[String]>
pub fn get_strings(&self) -> ValueResult<&[String]>
Get reference to all strings
§Returns
If types match, returns a reference to the string array; otherwise returns an error
Sourcepub fn get_dates(&self) -> ValueResult<&[NaiveDate]>
pub fn get_dates(&self) -> ValueResult<&[NaiveDate]>
Get reference to all date values
§Returns
If types match, returns a reference to the date value array; otherwise returns an error
Sourcepub fn get_times(&self) -> ValueResult<&[NaiveTime]>
pub fn get_times(&self) -> ValueResult<&[NaiveTime]>
Get reference to all time values
§Returns
If types match, returns a reference to the time value array; otherwise returns an error
Sourcepub fn get_datetimes(&self) -> ValueResult<&[NaiveDateTime]>
pub fn get_datetimes(&self) -> ValueResult<&[NaiveDateTime]>
Get reference to all datetime values
§Returns
If types match, returns a reference to the datetime value array; otherwise returns an error
Sourcepub fn get_instants(&self) -> ValueResult<&[DateTime<Utc>]>
pub fn get_instants(&self) -> ValueResult<&[DateTime<Utc>]>
Get reference to all UTC instant values
§Returns
If types match, returns a reference to the UTC instant value array; otherwise returns an error
Sourcepub fn get_bigintegers(&self) -> ValueResult<&[BigInt]>
pub fn get_bigintegers(&self) -> ValueResult<&[BigInt]>
Get reference to all big integers
§Returns
If types match, returns a reference to the big integer array; otherwise returns an error
Sourcepub fn get_bigdecimals(&self) -> ValueResult<&[BigDecimal]>
pub fn get_bigdecimals(&self) -> ValueResult<&[BigDecimal]>
Get reference to all big decimals
§Returns
If types match, returns a reference to the big decimal array; otherwise returns an error
Sourcepub fn set_bools(&mut self, values: Vec<bool>) -> ValueResult<()>
pub fn set_bools(&mut self, values: Vec<bool>) -> ValueResult<()>
Set all boolean values
§Parameters
values- The list of boolean values to set
§Returns
If setting succeeds, returns Ok(()); otherwise returns an error
§Example
use crate::util::value::MultiValues;
let mut values = MultiValues::Empty(DataType::Bool);
values.set_bools(vec![true, false, true]).unwrap();
assert_eq!(values.get_bools().unwrap(), &[true, false, true]);Sourcepub fn set_int16s(&mut self, values: Vec<i16>) -> ValueResult<()>
pub fn set_int16s(&mut self, values: Vec<i16>) -> ValueResult<()>
Sourcepub fn set_int32s(&mut self, values: Vec<i32>) -> ValueResult<()>
pub fn set_int32s(&mut self, values: Vec<i32>) -> ValueResult<()>
Sourcepub fn set_int64s(&mut self, values: Vec<i64>) -> ValueResult<()>
pub fn set_int64s(&mut self, values: Vec<i64>) -> ValueResult<()>
Sourcepub fn set_int128s(&mut self, values: Vec<i128>) -> ValueResult<()>
pub fn set_int128s(&mut self, values: Vec<i128>) -> ValueResult<()>
Sourcepub fn set_uint8s(&mut self, values: Vec<u8>) -> ValueResult<()>
pub fn set_uint8s(&mut self, values: Vec<u8>) -> ValueResult<()>
Sourcepub fn set_uint16s(&mut self, values: Vec<u16>) -> ValueResult<()>
pub fn set_uint16s(&mut self, values: Vec<u16>) -> ValueResult<()>
Sourcepub fn set_uint32s(&mut self, values: Vec<u32>) -> ValueResult<()>
pub fn set_uint32s(&mut self, values: Vec<u32>) -> ValueResult<()>
Sourcepub fn set_uint64s(&mut self, values: Vec<u64>) -> ValueResult<()>
pub fn set_uint64s(&mut self, values: Vec<u64>) -> ValueResult<()>
Sourcepub fn set_uint128s(&mut self, values: Vec<u128>) -> ValueResult<()>
pub fn set_uint128s(&mut self, values: Vec<u128>) -> ValueResult<()>
Sourcepub fn set_float32s(&mut self, values: Vec<f32>) -> ValueResult<()>
pub fn set_float32s(&mut self, values: Vec<f32>) -> ValueResult<()>
Sourcepub fn set_float64s(&mut self, values: Vec<f64>) -> ValueResult<()>
pub fn set_float64s(&mut self, values: Vec<f64>) -> ValueResult<()>
Sourcepub fn set_strings(&mut self, values: Vec<String>) -> ValueResult<()>
pub fn set_strings(&mut self, values: Vec<String>) -> ValueResult<()>
Set all string values
§Parameters
values- The list of string values to set
§Returns
If setting succeeds, returns Ok(()); otherwise returns an error
§Example
use crate::util::value::MultiValues;
let mut values = MultiValues::Empty(DataType::String);
values.set_strings(vec!["hello".to_string(), "world".to_string()]).unwrap();
assert_eq!(values.get_strings().unwrap(), &["hello", "world"]);Sourcepub fn set_datetimes(&mut self, values: Vec<NaiveDateTime>) -> ValueResult<()>
pub fn set_datetimes(&mut self, values: Vec<NaiveDateTime>) -> ValueResult<()>
Sourcepub fn set_instants(&mut self, values: Vec<DateTime<Utc>>) -> ValueResult<()>
pub fn set_instants(&mut self, values: Vec<DateTime<Utc>>) -> ValueResult<()>
Sourcepub fn set_bigintegers(&mut self, values: Vec<BigInt>) -> ValueResult<()>
pub fn set_bigintegers(&mut self, values: Vec<BigInt>) -> ValueResult<()>
Sourcepub fn set_bigdecimals(&mut self, values: Vec<BigDecimal>) -> ValueResult<()>
pub fn set_bigdecimals(&mut self, values: Vec<BigDecimal>) -> ValueResult<()>
Sourcepub fn set_bools_slice(&mut self, values: &[bool]) -> ValueResult<()>
pub fn set_bools_slice(&mut self, values: &[bool]) -> ValueResult<()>
Sourcepub fn set_chars_slice(&mut self, values: &[char]) -> ValueResult<()>
pub fn set_chars_slice(&mut self, values: &[char]) -> ValueResult<()>
Sourcepub fn set_int8s_slice(&mut self, values: &[i8]) -> ValueResult<()>
pub fn set_int8s_slice(&mut self, values: &[i8]) -> ValueResult<()>
Sourcepub fn set_int16s_slice(&mut self, values: &[i16]) -> ValueResult<()>
pub fn set_int16s_slice(&mut self, values: &[i16]) -> ValueResult<()>
Sourcepub fn set_int32s_slice(&mut self, values: &[i32]) -> ValueResult<()>
pub fn set_int32s_slice(&mut self, values: &[i32]) -> ValueResult<()>
Sourcepub fn set_int64s_slice(&mut self, values: &[i64]) -> ValueResult<()>
pub fn set_int64s_slice(&mut self, values: &[i64]) -> ValueResult<()>
Sourcepub fn set_int128s_slice(&mut self, values: &[i128]) -> ValueResult<()>
pub fn set_int128s_slice(&mut self, values: &[i128]) -> ValueResult<()>
Sourcepub fn set_uint8s_slice(&mut self, values: &[u8]) -> ValueResult<()>
pub fn set_uint8s_slice(&mut self, values: &[u8]) -> ValueResult<()>
Sourcepub fn set_uint16s_slice(&mut self, values: &[u16]) -> ValueResult<()>
pub fn set_uint16s_slice(&mut self, values: &[u16]) -> ValueResult<()>
Sourcepub fn set_uint32s_slice(&mut self, values: &[u32]) -> ValueResult<()>
pub fn set_uint32s_slice(&mut self, values: &[u32]) -> ValueResult<()>
Sourcepub fn set_uint64s_slice(&mut self, values: &[u64]) -> ValueResult<()>
pub fn set_uint64s_slice(&mut self, values: &[u64]) -> ValueResult<()>
Sourcepub fn set_uint128s_slice(&mut self, values: &[u128]) -> ValueResult<()>
pub fn set_uint128s_slice(&mut self, values: &[u128]) -> ValueResult<()>
Sourcepub fn set_float32s_slice(&mut self, values: &[f32]) -> ValueResult<()>
pub fn set_float32s_slice(&mut self, values: &[f32]) -> ValueResult<()>
Sourcepub fn set_float64s_slice(&mut self, values: &[f64]) -> ValueResult<()>
pub fn set_float64s_slice(&mut self, values: &[f64]) -> ValueResult<()>
Sourcepub fn set_strings_slice(&mut self, values: &[String]) -> ValueResult<()>
pub fn set_strings_slice(&mut self, values: &[String]) -> ValueResult<()>
Sourcepub fn set_dates_slice(&mut self, values: &[NaiveDate]) -> ValueResult<()>
pub fn set_dates_slice(&mut self, values: &[NaiveDate]) -> ValueResult<()>
Sourcepub fn set_times_slice(&mut self, values: &[NaiveTime]) -> ValueResult<()>
pub fn set_times_slice(&mut self, values: &[NaiveTime]) -> ValueResult<()>
Sourcepub fn set_datetimes_slice(
&mut self,
values: &[NaiveDateTime],
) -> ValueResult<()>
pub fn set_datetimes_slice( &mut self, values: &[NaiveDateTime], ) -> ValueResult<()>
Sourcepub fn set_instants_slice(
&mut self,
values: &[DateTime<Utc>],
) -> ValueResult<()>
pub fn set_instants_slice( &mut self, values: &[DateTime<Utc>], ) -> ValueResult<()>
Sourcepub fn set_bigintegers_slice(&mut self, values: &[BigInt]) -> ValueResult<()>
pub fn set_bigintegers_slice(&mut self, values: &[BigInt]) -> ValueResult<()>
Sourcepub fn set_bigdecimals_slice(
&mut self,
values: &[BigDecimal],
) -> ValueResult<()>
pub fn set_bigdecimals_slice( &mut self, values: &[BigDecimal], ) -> ValueResult<()>
Sourcepub fn set_bool(&mut self, value: bool) -> ValueResult<()>
pub fn set_bool(&mut self, value: bool) -> ValueResult<()>
Set single boolean value
§Parameters
value- The boolean value to set
§Returns
If setting succeeds, returns Ok(()); otherwise returns an error
§Example
use crate::util::value::MultiValues;
let mut values = MultiValues::Empty(DataType::Bool);
values.set_bool(true).unwrap();
assert_eq!(values.get_bools().unwrap(), &[true]);Sourcepub fn set_char(&mut self, value: char) -> ValueResult<()>
pub fn set_char(&mut self, value: char) -> ValueResult<()>
Sourcepub fn set_int8(&mut self, value: i8) -> ValueResult<()>
pub fn set_int8(&mut self, value: i8) -> ValueResult<()>
Sourcepub fn set_int16(&mut self, value: i16) -> ValueResult<()>
pub fn set_int16(&mut self, value: i16) -> ValueResult<()>
Sourcepub fn set_int32(&mut self, value: i32) -> ValueResult<()>
pub fn set_int32(&mut self, value: i32) -> ValueResult<()>
Sourcepub fn set_int64(&mut self, value: i64) -> ValueResult<()>
pub fn set_int64(&mut self, value: i64) -> ValueResult<()>
Sourcepub fn set_int128(&mut self, value: i128) -> ValueResult<()>
pub fn set_int128(&mut self, value: i128) -> ValueResult<()>
Sourcepub fn set_uint8(&mut self, value: u8) -> ValueResult<()>
pub fn set_uint8(&mut self, value: u8) -> ValueResult<()>
Sourcepub fn set_uint16(&mut self, value: u16) -> ValueResult<()>
pub fn set_uint16(&mut self, value: u16) -> ValueResult<()>
Sourcepub fn set_uint32(&mut self, value: u32) -> ValueResult<()>
pub fn set_uint32(&mut self, value: u32) -> ValueResult<()>
Sourcepub fn set_uint64(&mut self, value: u64) -> ValueResult<()>
pub fn set_uint64(&mut self, value: u64) -> ValueResult<()>
Sourcepub fn set_uint128(&mut self, value: u128) -> ValueResult<()>
pub fn set_uint128(&mut self, value: u128) -> ValueResult<()>
Sourcepub fn set_float32(&mut self, value: f32) -> ValueResult<()>
pub fn set_float32(&mut self, value: f32) -> ValueResult<()>
Sourcepub fn set_float64(&mut self, value: f64) -> ValueResult<()>
pub fn set_float64(&mut self, value: f64) -> ValueResult<()>
Sourcepub fn set_string(&mut self, value: String) -> ValueResult<()>
pub fn set_string(&mut self, value: String) -> ValueResult<()>
Set single string value
§Parameters
value- The string value to set
§Returns
If setting succeeds, returns Ok(()); otherwise returns an error
§Example
use crate::util::value::MultiValues;
let mut values = MultiValues::Empty(DataType::String);
values.set_string("hello".to_string()).unwrap();
assert_eq!(values.get_strings().unwrap(), &["hello"]);Sourcepub fn set_date(&mut self, value: NaiveDate) -> ValueResult<()>
pub fn set_date(&mut self, value: NaiveDate) -> ValueResult<()>
Sourcepub fn set_time(&mut self, value: NaiveTime) -> ValueResult<()>
pub fn set_time(&mut self, value: NaiveTime) -> ValueResult<()>
Sourcepub fn set_datetime(&mut self, value: NaiveDateTime) -> ValueResult<()>
pub fn set_datetime(&mut self, value: NaiveDateTime) -> ValueResult<()>
Sourcepub fn set_instant(&mut self, value: DateTime<Utc>) -> ValueResult<()>
pub fn set_instant(&mut self, value: DateTime<Utc>) -> ValueResult<()>
Sourcepub fn set_biginteger(&mut self, value: BigInt) -> ValueResult<()>
pub fn set_biginteger(&mut self, value: BigInt) -> ValueResult<()>
Sourcepub fn set_bigdecimal(&mut self, value: BigDecimal) -> ValueResult<()>
pub fn set_bigdecimal(&mut self, value: BigDecimal) -> ValueResult<()>
Sourcepub fn add_bool(&mut self, value: bool) -> ValueResult<()>
pub fn add_bool(&mut self, value: bool) -> ValueResult<()>
Sourcepub fn add_char(&mut self, value: char) -> ValueResult<()>
pub fn add_char(&mut self, value: char) -> ValueResult<()>
Sourcepub fn add_int8(&mut self, value: i8) -> ValueResult<()>
pub fn add_int8(&mut self, value: i8) -> ValueResult<()>
Sourcepub fn add_int16(&mut self, value: i16) -> ValueResult<()>
pub fn add_int16(&mut self, value: i16) -> ValueResult<()>
Sourcepub fn add_int32(&mut self, value: i32) -> ValueResult<()>
pub fn add_int32(&mut self, value: i32) -> ValueResult<()>
Sourcepub fn add_int64(&mut self, value: i64) -> ValueResult<()>
pub fn add_int64(&mut self, value: i64) -> ValueResult<()>
Sourcepub fn add_int128(&mut self, value: i128) -> ValueResult<()>
pub fn add_int128(&mut self, value: i128) -> ValueResult<()>
Sourcepub fn add_uint8(&mut self, value: u8) -> ValueResult<()>
pub fn add_uint8(&mut self, value: u8) -> ValueResult<()>
Sourcepub fn add_uint16(&mut self, value: u16) -> ValueResult<()>
pub fn add_uint16(&mut self, value: u16) -> ValueResult<()>
Sourcepub fn add_uint32(&mut self, value: u32) -> ValueResult<()>
pub fn add_uint32(&mut self, value: u32) -> ValueResult<()>
Sourcepub fn add_uint64(&mut self, value: u64) -> ValueResult<()>
pub fn add_uint64(&mut self, value: u64) -> ValueResult<()>
Sourcepub fn add_uint128(&mut self, value: u128) -> ValueResult<()>
pub fn add_uint128(&mut self, value: u128) -> ValueResult<()>
Sourcepub fn add_float32(&mut self, value: f32) -> ValueResult<()>
pub fn add_float32(&mut self, value: f32) -> ValueResult<()>
Sourcepub fn add_float64(&mut self, value: f64) -> ValueResult<()>
pub fn add_float64(&mut self, value: f64) -> ValueResult<()>
Sourcepub fn add_string(&mut self, value: String) -> ValueResult<()>
pub fn add_string(&mut self, value: String) -> ValueResult<()>
Sourcepub fn add_date(&mut self, value: NaiveDate) -> ValueResult<()>
pub fn add_date(&mut self, value: NaiveDate) -> ValueResult<()>
Sourcepub fn add_time(&mut self, value: NaiveTime) -> ValueResult<()>
pub fn add_time(&mut self, value: NaiveTime) -> ValueResult<()>
Sourcepub fn add_datetime(&mut self, value: NaiveDateTime) -> ValueResult<()>
pub fn add_datetime(&mut self, value: NaiveDateTime) -> ValueResult<()>
Sourcepub fn add_instant(&mut self, value: DateTime<Utc>) -> ValueResult<()>
pub fn add_instant(&mut self, value: DateTime<Utc>) -> ValueResult<()>
Sourcepub fn add_biginteger(&mut self, value: BigInt) -> ValueResult<()>
pub fn add_biginteger(&mut self, value: BigInt) -> ValueResult<()>
Sourcepub fn add_bigdecimal(&mut self, value: BigDecimal) -> ValueResult<()>
pub fn add_bigdecimal(&mut self, value: BigDecimal) -> ValueResult<()>
Sourcepub fn add_bools(&mut self, values: Vec<bool>) -> ValueResult<()>
pub fn add_bools(&mut self, values: Vec<bool>) -> ValueResult<()>
Add multiple boolean values
§Parameters
values- The list of boolean values to add
§Returns
If types match, returns Ok(()); otherwise returns an error
§Example
use crate::util::value::MultiValues;
let mut values = MultiValues::Bool(vec![true]);
values.add_bools(vec![false, true]).unwrap();
assert_eq!(values.get_bools().unwrap(), &[true, false, true]);Sourcepub fn add_int16s(&mut self, values: Vec<i16>) -> ValueResult<()>
pub fn add_int16s(&mut self, values: Vec<i16>) -> ValueResult<()>
Sourcepub fn add_int32s(&mut self, values: Vec<i32>) -> ValueResult<()>
pub fn add_int32s(&mut self, values: Vec<i32>) -> ValueResult<()>
Sourcepub fn add_int64s(&mut self, values: Vec<i64>) -> ValueResult<()>
pub fn add_int64s(&mut self, values: Vec<i64>) -> ValueResult<()>
Sourcepub fn add_int128s(&mut self, values: Vec<i128>) -> ValueResult<()>
pub fn add_int128s(&mut self, values: Vec<i128>) -> ValueResult<()>
Sourcepub fn add_uint8s(&mut self, values: Vec<u8>) -> ValueResult<()>
pub fn add_uint8s(&mut self, values: Vec<u8>) -> ValueResult<()>
Sourcepub fn add_uint16s(&mut self, values: Vec<u16>) -> ValueResult<()>
pub fn add_uint16s(&mut self, values: Vec<u16>) -> ValueResult<()>
Sourcepub fn add_uint32s(&mut self, values: Vec<u32>) -> ValueResult<()>
pub fn add_uint32s(&mut self, values: Vec<u32>) -> ValueResult<()>
Sourcepub fn add_uint64s(&mut self, values: Vec<u64>) -> ValueResult<()>
pub fn add_uint64s(&mut self, values: Vec<u64>) -> ValueResult<()>
Sourcepub fn add_uint128s(&mut self, values: Vec<u128>) -> ValueResult<()>
pub fn add_uint128s(&mut self, values: Vec<u128>) -> ValueResult<()>
Sourcepub fn add_float32s(&mut self, values: Vec<f32>) -> ValueResult<()>
pub fn add_float32s(&mut self, values: Vec<f32>) -> ValueResult<()>
Sourcepub fn add_float64s(&mut self, values: Vec<f64>) -> ValueResult<()>
pub fn add_float64s(&mut self, values: Vec<f64>) -> ValueResult<()>
Sourcepub fn add_strings(&mut self, values: Vec<String>) -> ValueResult<()>
pub fn add_strings(&mut self, values: Vec<String>) -> ValueResult<()>
Add multiple string values
§Parameters
values- The list of string values to add
§Returns
If types match, returns Ok(()); otherwise returns an error
§Example
use crate::util::value::MultiValues;
let mut values = MultiValues::String(vec!["hello".to_string()]);
values.add_strings(vec!["world".to_string(), "rust".to_string()]).unwrap();
assert_eq!(values.get_strings().unwrap(), &["hello", "world", "rust"]);Sourcepub fn add_datetimes(&mut self, values: Vec<NaiveDateTime>) -> ValueResult<()>
pub fn add_datetimes(&mut self, values: Vec<NaiveDateTime>) -> ValueResult<()>
Sourcepub fn add_instants(&mut self, values: Vec<DateTime<Utc>>) -> ValueResult<()>
pub fn add_instants(&mut self, values: Vec<DateTime<Utc>>) -> ValueResult<()>
Sourcepub fn add_bigintegers(&mut self, values: Vec<BigInt>) -> ValueResult<()>
pub fn add_bigintegers(&mut self, values: Vec<BigInt>) -> ValueResult<()>
Sourcepub fn add_bigdecimals(&mut self, values: Vec<BigDecimal>) -> ValueResult<()>
pub fn add_bigdecimals(&mut self, values: Vec<BigDecimal>) -> ValueResult<()>
Sourcepub fn add_bools_slice(&mut self, values: &[bool]) -> ValueResult<()>
pub fn add_bools_slice(&mut self, values: &[bool]) -> ValueResult<()>
Sourcepub fn add_chars_slice(&mut self, values: &[char]) -> ValueResult<()>
pub fn add_chars_slice(&mut self, values: &[char]) -> ValueResult<()>
Sourcepub fn add_int8s_slice(&mut self, values: &[i8]) -> ValueResult<()>
pub fn add_int8s_slice(&mut self, values: &[i8]) -> ValueResult<()>
Sourcepub fn add_int16s_slice(&mut self, values: &[i16]) -> ValueResult<()>
pub fn add_int16s_slice(&mut self, values: &[i16]) -> ValueResult<()>
Sourcepub fn add_int32s_slice(&mut self, values: &[i32]) -> ValueResult<()>
pub fn add_int32s_slice(&mut self, values: &[i32]) -> ValueResult<()>
Sourcepub fn add_int64s_slice(&mut self, values: &[i64]) -> ValueResult<()>
pub fn add_int64s_slice(&mut self, values: &[i64]) -> ValueResult<()>
Sourcepub fn add_int128s_slice(&mut self, values: &[i128]) -> ValueResult<()>
pub fn add_int128s_slice(&mut self, values: &[i128]) -> ValueResult<()>
Sourcepub fn add_uint8s_slice(&mut self, values: &[u8]) -> ValueResult<()>
pub fn add_uint8s_slice(&mut self, values: &[u8]) -> ValueResult<()>
Sourcepub fn add_uint16s_slice(&mut self, values: &[u16]) -> ValueResult<()>
pub fn add_uint16s_slice(&mut self, values: &[u16]) -> ValueResult<()>
Sourcepub fn add_uint32s_slice(&mut self, values: &[u32]) -> ValueResult<()>
pub fn add_uint32s_slice(&mut self, values: &[u32]) -> ValueResult<()>
Sourcepub fn add_uint64s_slice(&mut self, values: &[u64]) -> ValueResult<()>
pub fn add_uint64s_slice(&mut self, values: &[u64]) -> ValueResult<()>
Sourcepub fn add_uint128s_slice(&mut self, values: &[u128]) -> ValueResult<()>
pub fn add_uint128s_slice(&mut self, values: &[u128]) -> ValueResult<()>
Sourcepub fn add_float32s_slice(&mut self, values: &[f32]) -> ValueResult<()>
pub fn add_float32s_slice(&mut self, values: &[f32]) -> ValueResult<()>
Sourcepub fn add_float64s_slice(&mut self, values: &[f64]) -> ValueResult<()>
pub fn add_float64s_slice(&mut self, values: &[f64]) -> ValueResult<()>
Sourcepub fn add_strings_slice(&mut self, values: &[String]) -> ValueResult<()>
pub fn add_strings_slice(&mut self, values: &[String]) -> ValueResult<()>
Sourcepub fn add_dates_slice(&mut self, values: &[NaiveDate]) -> ValueResult<()>
pub fn add_dates_slice(&mut self, values: &[NaiveDate]) -> ValueResult<()>
Sourcepub fn add_times_slice(&mut self, values: &[NaiveTime]) -> ValueResult<()>
pub fn add_times_slice(&mut self, values: &[NaiveTime]) -> ValueResult<()>
Sourcepub fn add_datetimes_slice(
&mut self,
values: &[NaiveDateTime],
) -> ValueResult<()>
pub fn add_datetimes_slice( &mut self, values: &[NaiveDateTime], ) -> ValueResult<()>
Sourcepub fn add_instants_slice(
&mut self,
values: &[DateTime<Utc>],
) -> ValueResult<()>
pub fn add_instants_slice( &mut self, values: &[DateTime<Utc>], ) -> ValueResult<()>
Sourcepub fn add_bigintegers_slice(&mut self, values: &[BigInt]) -> ValueResult<()>
pub fn add_bigintegers_slice(&mut self, values: &[BigInt]) -> ValueResult<()>
Sourcepub fn add_bigdecimals_slice(
&mut self,
values: &[BigDecimal],
) -> ValueResult<()>
pub fn add_bigdecimals_slice( &mut self, values: &[BigDecimal], ) -> ValueResult<()>
Sourcepub fn merge(&mut self, other: &MultiValues) -> ValueResult<()>
pub fn merge(&mut self, other: &MultiValues) -> ValueResult<()>
Merge another multiple values
Append all values from another multiple values to the current multiple values
§Parameters
other- The multiple values to merge
§Returns
If types match, returns Ok(()); otherwise returns an error
§Example
use crate::util::value::MultiValues;
let mut a = MultiValues::Int32(vec![1, 2]);
let b = MultiValues::Int32(vec![3, 4]);
a.merge(&b).unwrap();
assert_eq!(a.get_int32s().unwrap(), &[1, 2, 3, 4]);Trait Implementations§
Source§impl Clone for NamedMultiValues
impl Clone for NamedMultiValues
Source§fn clone(&self) -> NamedMultiValues
fn clone(&self) -> NamedMultiValues
1.0.0 · 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 Deref for NamedMultiValues
Transparently delegate read-only methods to the inner MultiValues through Deref.
impl Deref for NamedMultiValues
Transparently delegate read-only methods to the inner MultiValues through Deref.
Source§impl DerefMut for NamedMultiValues
Transparently delegate mutable methods to the inner MultiValues through DerefMut.
impl DerefMut for NamedMultiValues
Transparently delegate mutable methods to the inner MultiValues through DerefMut.
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>,
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.