pub enum KvValue {
Float(f64),
Int(i64),
Uint(u64),
Bool(bool),
Str(String),
}
Expand description
Types available for use in KV
.
Float
, Int
and Uint
are all 64bit. The corresponding 32bit variants must be
be converted to 64 bit. Preferably the From
impls are used to create a KvValue
:
let x: KvValue = 1u64.into();
assert_eq!(x, KvValue::Uint(1u64));
let x: KvValue = 2u32.into();
assert_eq!(x, KvValue::Uint(2u64));
let x: KvValue = 2i64.into();
assert_eq!(x, KvValue::Int(2i64));
let x: KvValue = 2i32.into();
assert_eq!(x, KvValue::Int(2i64));
let x: KvValue = 1.0f64.into();
assert_eq!(x, KvValue::Float(1f64));
let x: KvValue = 1.0f32.into();
assert_eq!(x, KvValue::Float(1f64));
let x: KvValue = true.into();
assert_eq!(x, KvValue::Bool(true));
let x: KvValue = "a str".into();
assert_eq!(x, KvValue::Str("a str".to_string()));
let x: KvValue = "a String".to_string().into();
assert_eq!(x, KvValue::Str("a String".to_string()));
Variants§
Float(f64)
Floating point values
Int(i64)
Signed integers
Uint(u64)
Unsigned integers
Bool(bool)
Boolean values
Str(String)
Strings
Implementations§
source§impl KvValue
impl KvValue
sourcepub fn kind(&self) -> &'static str
pub fn kind(&self) -> &'static str
Returns the kind of the KvValue
§Examples
assert_eq!(KvValue::Float(1.0).kind(), "Float");
assert_eq!(KvValue::Int(1).kind(), "Int");
assert_eq!(KvValue::Uint(1).kind(), "Uint");
assert_eq!(KvValue::Bool(true).kind(), "Bool");
assert_eq!(KvValue::Str("string".to_string()).kind(), "Str");
sourcepub fn get_float(&self) -> Option<f64>
pub fn get_float(&self) -> Option<f64>
Extract float from KvValue
Returns Some(<float>)
if KvValue
is of kind Float
.
Note: For KvValue::Int
and KvValue::Uint
integer values are cast to f64, therefore
this operation may be lossy!
KvValue::Bool
is turned into 1.0f64
if true and 0.0f64
if false.
§Example
assert_eq!(KvValue::Float(1.0).get_float(), Some(1.0));
assert_eq!(KvValue::Int(1).get_float(), Some(1.0));
assert_eq!(KvValue::Uint(1).get_float(), Some(1.0));
assert_eq!(KvValue::Bool(true).get_float(), Some(1.0));
assert_eq!(KvValue::Str("not a number".to_string()).get_float(), None);
sourcepub fn get_int(&self) -> Option<i64>
pub fn get_int(&self) -> Option<i64>
Extract int from KvValue
Returns Some(<int>)
if KvValue
is of kind Int
and None
otherwise.
§Example
assert_eq!(KvValue::Int(1).get_int(), Some(1i64));
assert_eq!(KvValue::Float(1.0).get_int(), None);
assert_eq!(KvValue::Uint(1).get_int(), None);
assert_eq!(KvValue::Bool(true).get_int(), None);
assert_eq!(KvValue::Str("not an int".to_string()).get_int(), None);
sourcepub fn get_uint(&self) -> Option<u64>
pub fn get_uint(&self) -> Option<u64>
Extract unsigned int from KvValue
Returns Some(<unsigned int>)
if KvValue
is of kind Uint
and None
otherwise.
§Example
assert_eq!(KvValue::Uint(1).get_uint(), Some(1u64));
assert_eq!(KvValue::Int(1).get_uint(), None);
assert_eq!(KvValue::Float(1.0).get_uint(), None);
assert_eq!(KvValue::Bool(true).get_uint(), None);
assert_eq!(KvValue::Str("not an uint".to_string()).get_uint(), None);
sourcepub fn get_bool(&self) -> Option<bool>
pub fn get_bool(&self) -> Option<bool>
Extract bool from KvValue
Returns Some(<bool>)
if KvValue
is of kind Bool
and None
otherwise.
§Example
assert_eq!(KvValue::Bool(true).get_bool(), Some(true));
assert_eq!(KvValue::Float(1.0).get_bool(), None);
assert_eq!(KvValue::Int(1).get_bool(), None);
assert_eq!(KvValue::Uint(1).get_bool(), None);
assert_eq!(KvValue::Str("not a bool".to_string()).get_bool(), None);
sourcepub fn get_string(&self) -> Option<String>
pub fn get_string(&self) -> Option<String>
Extract String from KvValue
Returns Some(<string>)
if KvValue
is of kind Str
and None
otherwise.
§Example
assert_eq!(KvValue::Str("a string".to_string()).get_string(), Some("a string".to_string()));
assert_eq!(KvValue::Float(1.0).get_string(), None);
assert_eq!(KvValue::Int(1).get_string(), None);
assert_eq!(KvValue::Uint(1).get_string(), None);
assert_eq!(KvValue::Bool(true).get_string(), None);
sourcepub fn as_string(&self) -> String
pub fn as_string(&self) -> String
Get String representation of KvValue
§Example
assert_eq!(KvValue::Str("a string".to_string()).as_string(), "a string".to_string());
assert_eq!(KvValue::Float(1.0).as_string(), "1".to_string());
assert_eq!(KvValue::Int(1).as_string(), "1".to_string());
assert_eq!(KvValue::Uint(1).as_string(), "1".to_string());
assert_eq!(KvValue::Bool(true).as_string(), "true".to_string());
Trait Implementations§
source§impl<'de> Deserialize<'de> for KvValue
impl<'de> Deserialize<'de> for KvValue
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>,
impl StructuralPartialEq for KvValue
Auto Trait Implementations§
impl Freeze for KvValue
impl RefUnwindSafe for KvValue
impl Send for KvValue
impl Sync for KvValue
impl Unpin for KvValue
impl UnwindSafe for KvValue
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.