Add from bytes and vector for DataValue.

So it is easier to into DataValue.
main
Xianzhe Liang 7 months ago
parent 7adfc6c6e5
commit 160068cfc2

@ -46,6 +46,8 @@ fn display_datavalues() {
println!("{}", DataValue::from(-1121212121.331212121));
println!("{}", DataValue::from(f64::NAN));
println!("{}", DataValue::from(f64::NEG_INFINITY));
println!("{}", DataValue::from(vec![10, 20]));
println!("{}", DataValue::from(vec!["hello", "你好"]));
println!(
"{}",
DataValue::List(vec![

@ -438,12 +438,24 @@ impl Hash for Vector {
}
}
impl From<bool> for DataValue {
fn from(value: bool) -> Self {
DataValue::Bool(value)
}
}
impl From<i64> for DataValue {
fn from(v: i64) -> Self {
DataValue::Num(Num::Int(v))
}
}
impl From<i32> for DataValue {
fn from(v: i32) -> Self {
DataValue::Num(Num::Int(v as i64))
}
}
impl From<f64> for DataValue {
fn from(v: f64) -> Self {
DataValue::Num(Num::Float(v))
@ -462,9 +474,18 @@ impl From<String> for DataValue {
}
}
impl From<bool> for DataValue {
fn from(value: bool) -> Self {
DataValue::Bool(value)
impl From<Vec<u8>> for DataValue {
fn from(v: Vec<u8>) -> Self {
DataValue::Bytes(v)
}
}
impl<T: Into<DataValue>> From<Vec<T>> for DataValue {
fn from(v: Vec<T>) -> Self
where
T: Into<DataValue>,
{
DataValue::List(v.into_iter().map(Into::into).collect())
}
}

Loading…
Cancel
Save