use crate::model::conversion::ToDataValue;
use crate::types::DataValue;
use std::collections::HashMap;
impl ToDataValue for Vec<String> {
fn to_data_value(&self) -> DataValue {
let data_values: Vec<DataValue> =
self.iter().map(|s| DataValue::String(s.clone())).collect();
DataValue::Array(data_values)
}
}
impl ToDataValue for Vec<i32> {
fn to_data_value(&self) -> DataValue {
let data_values: Vec<DataValue> = self.iter().map(|&i| DataValue::Int(i as i64)).collect();
DataValue::Array(data_values)
}
}
impl ToDataValue for Vec<i64> {
fn to_data_value(&self) -> DataValue {
let data_values: Vec<DataValue> = self.iter().map(|&i| DataValue::Int(i)).collect();
DataValue::Array(data_values)
}
}
impl ToDataValue for Vec<f64> {
fn to_data_value(&self) -> DataValue {
let data_values: Vec<DataValue> = self.iter().map(|&f| DataValue::Float(f)).collect();
DataValue::Array(data_values)
}
}
impl ToDataValue for Vec<bool> {
fn to_data_value(&self) -> DataValue {
let data_values: Vec<DataValue> = self.iter().map(|&b| DataValue::Bool(b)).collect();
DataValue::Array(data_values)
}
}
impl ToDataValue for HashMap<String, DataValue> {
fn to_data_value(&self) -> DataValue {
DataValue::Object(self.clone())
}
}