use crate::{FrcValue, traits::IntoFrcValue, TimestampedValue};
impl From<f64> for FrcValue {
fn from(v: f64) -> Self {
FrcValue::Double(v)
}
}
impl From<f32> for FrcValue {
fn from(v: f32) -> Self {
FrcValue::Float(v)
}
}
impl From<i64> for FrcValue {
fn from(v: i64) -> Self {
FrcValue::Int(v)
}
}
impl From<i32> for FrcValue {
fn from(v: i32) -> Self {
FrcValue::Int(v as i64)
}
}
impl From<i16> for FrcValue {
fn from(v: i16) -> Self {
FrcValue::Int(v as i64)
}
}
impl From<i8> for FrcValue {
fn from(v: i8) -> Self {
FrcValue::Int(v as i64)
}
}
impl From<u64> for FrcValue {
fn from(v: u64) -> Self {
FrcValue::Int(v as i64)
}
}
impl From<u32> for FrcValue {
fn from(v: u32) -> Self {
FrcValue::Int(v as i64)
}
}
impl From<u16> for FrcValue {
fn from(v: u16) -> Self {
FrcValue::Int(v as i64)
}
}
impl From<u8> for FrcValue {
fn from(v: u8) -> Self {
FrcValue::Int(v as i64)
}
}
impl From<bool> for FrcValue {
fn from(v: bool) -> Self {
FrcValue::Bool(v)
}
}
impl From<String> for FrcValue {
fn from(v: String) -> Self {
FrcValue::String(v)
}
}
impl From<&str> for FrcValue {
fn from(v: &str) -> Self {
FrcValue::String(v.to_string())
}
}
impl From<Vec<bool>> for FrcValue {
fn from(v: Vec<bool>) -> Self {
FrcValue::BoolArray(v)
}
}
impl From<Vec<i64>> for FrcValue {
fn from(v: Vec<i64>) -> Self {
FrcValue::IntArray(v)
}
}
impl From<Vec<i32>> for FrcValue {
fn from(v: Vec<i32>) -> Self {
FrcValue::IntArray(v.iter().map(|v| *v as i64).collect())
}
}
impl From<Vec<u64>> for FrcValue {
fn from(v: Vec<u64>) -> Self {
FrcValue::IntArray(v.iter().map(|v| *v as i64).collect())
}
}
impl From<Vec<u32>> for FrcValue {
fn from(v: Vec<u32>) -> Self {
FrcValue::IntArray(v.iter().map(|v| *v as i64).collect())
}
}
impl From<Vec<f32>> for FrcValue {
fn from(v: Vec<f32>) -> Self {
FrcValue::FloatArray(v)
}
}
impl From<Vec<f64>> for FrcValue {
fn from(v: Vec<f64>) -> Self {
FrcValue::DoubleArray(v)
}
}
impl From<Vec<String>> for FrcValue {
fn from(v: Vec<String>) -> Self {
FrcValue::StringArray(v)
}
}
impl From<Vec<&str>> for FrcValue {
fn from(v: Vec<&str>) -> Self {
FrcValue::StringArray(v.iter().map(|s| s.to_string()).collect())
}
}
impl<T: Into<FrcValue>> IntoFrcValue for T {
fn into_frc_value(self) -> FrcValue {
self.into()
}
}
impl IntoFrcValue for TimestampedValue {
fn into_frc_value(self) -> FrcValue {
self.value
}
}