use std::sync::Arc;
use crate::datetime::{NdbDateTime, NdbDuration};
use crate::geometry::Geometry;
use crate::value::core::Value;
impl From<&str> for Value {
fn from(s: &str) -> Self {
Value::String(s.to_owned())
}
}
impl From<String> for Value {
fn from(s: String) -> Self {
Value::String(s)
}
}
impl From<i64> for Value {
fn from(i: i64) -> Self {
Value::Integer(i)
}
}
impl From<f64> for Value {
fn from(f: f64) -> Self {
Value::Float(f)
}
}
impl From<bool> for Value {
fn from(b: bool) -> Self {
Value::Bool(b)
}
}
impl From<Vec<u8>> for Value {
fn from(b: Vec<u8>) -> Self {
Value::Bytes(b)
}
}
impl From<NdbDateTime> for Value {
fn from(dt: NdbDateTime) -> Self {
Value::DateTime(dt)
}
}
impl From<NdbDuration> for Value {
fn from(d: NdbDuration) -> Self {
Value::Duration(d)
}
}
impl From<rust_decimal::Decimal> for Value {
fn from(d: rust_decimal::Decimal) -> Self {
Value::Decimal(d)
}
}
impl From<Geometry> for Value {
fn from(g: Geometry) -> Self {
Value::Geometry(g)
}
}
impl From<Vec<f32>> for Value {
fn from(v: Vec<f32>) -> Self {
Value::Vector(v.into())
}
}
impl From<Arc<[f32]>> for Value {
fn from(v: Arc<[f32]>) -> Self {
Value::Vector(v)
}
}
impl From<&[f32]> for Value {
fn from(v: &[f32]) -> Self {
Value::Vector(v.into())
}
}