use std::collections::HashMap;
use std::time::Duration;
use bigdecimal::BigDecimal;
use chrono::{
DateTime,
NaiveDate,
NaiveDateTime,
NaiveTime,
Utc,
};
use num_bigint::BigInt;
use url::Url;
use qubit_datatype::DataType;
use crate::value_error::{
ValueError,
ValueResult,
};
use super::multi_values::MultiValues;
impl MultiValues {
impl_add_single_value! {
add_bool, Bool, bool, DataType::Bool
}
impl_add_single_value! {
add_char, Char, char, DataType::Char
}
impl_add_single_value! {
add_int8, Int8, i8, DataType::Int8
}
impl_add_single_value! {
add_int16, Int16, i16, DataType::Int16
}
impl_add_single_value! {
add_int32, Int32, i32, DataType::Int32
}
impl_add_single_value! {
add_int64, Int64, i64, DataType::Int64
}
impl_add_single_value! {
add_int128, Int128, i128, DataType::Int128
}
impl_add_single_value! {
add_uint8, UInt8, u8, DataType::UInt8
}
impl_add_single_value! {
add_uint16, UInt16, u16, DataType::UInt16
}
impl_add_single_value! {
add_uint32, UInt32, u32, DataType::UInt32
}
impl_add_single_value! {
add_uint64, UInt64, u64, DataType::UInt64
}
impl_add_single_value! {
add_uint128, UInt128, u128, DataType::UInt128
}
impl_add_single_value! {
add_float32, Float32, f32, DataType::Float32
}
impl_add_single_value! {
add_float64, Float64, f64, DataType::Float64
}
impl_add_single_value! {
add_string, String, String, DataType::String
}
impl_add_single_value! {
add_date, Date, NaiveDate, DataType::Date
}
impl_add_single_value! {
add_time, Time, NaiveTime, DataType::Time
}
impl_add_single_value! {
add_datetime, DateTime, NaiveDateTime, DataType::DateTime
}
impl_add_single_value! {
add_instant, Instant, DateTime<Utc>, DataType::Instant
}
impl_add_single_value! {
add_biginteger, BigInteger, BigInt, DataType::BigInteger
}
impl_add_single_value! {
add_bigdecimal, BigDecimal, BigDecimal, DataType::BigDecimal
}
impl_add_single_value! {
add_intsize, IntSize, isize, DataType::IntSize
}
impl_add_single_value! {
add_uintsize, UIntSize, usize, DataType::UIntSize
}
impl_add_single_value! {
add_duration, Duration, Duration, DataType::Duration
}
impl_add_single_value! {
add_url, Url, Url, DataType::Url
}
impl_add_single_value! {
add_string_map, StringMap, HashMap<String, String>, DataType::StringMap
}
impl_add_single_value! {
add_json, Json, serde_json::Value, DataType::Json
}
impl_add_multi_values! {
add_bools, Bool, bool, DataType::Bool
}
impl_add_multi_values! {
add_chars, Char, char, DataType::Char
}
impl_add_multi_values! {
add_int8s, Int8, i8, DataType::Int8
}
impl_add_multi_values! {
add_int16s, Int16, i16, DataType::Int16
}
impl_add_multi_values! {
add_int32s, Int32, i32, DataType::Int32
}
impl_add_multi_values! {
add_int64s, Int64, i64, DataType::Int64
}
impl_add_multi_values! {
add_int128s, Int128, i128, DataType::Int128
}
impl_add_multi_values! {
add_uint8s, UInt8, u8, DataType::UInt8
}
impl_add_multi_values! {
add_uint16s, UInt16, u16, DataType::UInt16
}
impl_add_multi_values! {
add_uint32s, UInt32, u32, DataType::UInt32
}
impl_add_multi_values! {
add_uint64s, UInt64, u64, DataType::UInt64
}
impl_add_multi_values! {
add_uint128s, UInt128, u128, DataType::UInt128
}
impl_add_multi_values! {
add_float32s, Float32, f32, DataType::Float32
}
impl_add_multi_values! {
add_float64s, Float64, f64, DataType::Float64
}
impl_add_multi_values! {
add_strings, String, String, DataType::String
}
impl_add_multi_values! {
add_dates, Date, NaiveDate, DataType::Date
}
impl_add_multi_values! {
add_times, Time, NaiveTime, DataType::Time
}
impl_add_multi_values! {
add_datetimes, DateTime, NaiveDateTime, DataType::DateTime
}
impl_add_multi_values! {
add_instants, Instant, DateTime<Utc>, DataType::Instant
}
impl_add_multi_values! {
add_bigintegers, BigInteger, BigInt, DataType::BigInteger
}
impl_add_multi_values! {
add_bigdecimals, BigDecimal, BigDecimal, DataType::BigDecimal
}
impl_add_multi_values! {
add_intsizes, IntSize, isize, DataType::IntSize
}
impl_add_multi_values! {
add_uintsizes, UIntSize, usize, DataType::UIntSize
}
impl_add_multi_values! {
add_durations, Duration, Duration, DataType::Duration
}
impl_add_multi_values! {
add_urls, Url, Url, DataType::Url
}
impl_add_multi_values! {
add_string_maps, StringMap, HashMap<String, String>, DataType::StringMap
}
impl_add_multi_values! {
add_jsons, Json, serde_json::Value, DataType::Json
}
impl_add_multi_values_slice! {
add_bools_slice, Bool, bool, DataType::Bool
}
impl_add_multi_values_slice! {
add_chars_slice, Char, char, DataType::Char
}
impl_add_multi_values_slice! {
add_int8s_slice, Int8, i8, DataType::Int8
}
impl_add_multi_values_slice! {
add_int16s_slice, Int16, i16, DataType::Int16
}
impl_add_multi_values_slice! {
add_int32s_slice, Int32, i32, DataType::Int32
}
impl_add_multi_values_slice! {
add_int64s_slice, Int64, i64, DataType::Int64
}
impl_add_multi_values_slice! {
add_int128s_slice, Int128, i128, DataType::Int128
}
impl_add_multi_values_slice! {
add_uint8s_slice, UInt8, u8, DataType::UInt8
}
impl_add_multi_values_slice! {
add_uint16s_slice, UInt16, u16, DataType::UInt16
}
impl_add_multi_values_slice! {
add_uint32s_slice, UInt32, u32, DataType::UInt32
}
impl_add_multi_values_slice! {
add_uint64s_slice, UInt64, u64, DataType::UInt64
}
impl_add_multi_values_slice! {
add_uint128s_slice, UInt128, u128, DataType::UInt128
}
impl_add_multi_values_slice! {
add_float32s_slice, Float32, f32, DataType::Float32
}
impl_add_multi_values_slice! {
add_float64s_slice, Float64, f64, DataType::Float64
}
impl_add_multi_values_slice! {
add_strings_slice, String, String, DataType::String
}
impl_add_multi_values_slice! {
add_dates_slice, Date, NaiveDate, DataType::Date
}
impl_add_multi_values_slice! {
add_times_slice, Time, NaiveTime, DataType::Time
}
impl_add_multi_values_slice! {
add_datetimes_slice, DateTime, NaiveDateTime, DataType::DateTime
}
impl_add_multi_values_slice! {
add_instants_slice, Instant, DateTime<Utc>, DataType::Instant
}
impl_add_multi_values_slice! {
add_bigintegers_slice, BigInteger, BigInt, DataType::BigInteger
}
impl_add_multi_values_slice! {
add_bigdecimals_slice, BigDecimal, BigDecimal, DataType::BigDecimal
}
impl_add_multi_values_slice! {
add_intsizes_slice, IntSize, isize, DataType::IntSize
}
impl_add_multi_values_slice! {
add_uintsizes_slice, UIntSize, usize, DataType::UIntSize
}
impl_add_multi_values_slice! {
add_durations_slice, Duration, Duration, DataType::Duration
}
impl_add_multi_values_slice! {
add_urls_slice, Url, Url, DataType::Url
}
impl_add_multi_values_slice! {
add_string_maps_slice, StringMap, HashMap<String, String>, DataType::StringMap
}
impl_add_multi_values_slice! {
add_jsons_slice, Json, serde_json::Value, DataType::Json
}
}