use qubit_datatype::DataType;
#[must_use]
#[non_exhaustive]
#[derive(Debug, Clone, Copy)]
pub enum ValueRef<'a> {
Unset(DataType),
Bool(bool),
Char(char),
Int8(i8),
Int16(i16),
Int32(i32),
Int64(i64),
Int128(i128),
UInt8(u8),
UInt16(u16),
UInt32(u32),
UInt64(u64),
UInt128(u128),
Float32(f32),
Float64(f64),
#[cfg(feature = "big-integer")]
BigInteger(&'a num_bigint::BigInt),
#[cfg(feature = "big-decimal")]
BigDecimal(&'a bigdecimal::BigDecimal),
String(&'a str),
#[cfg(feature = "chrono")]
Date(&'a chrono::NaiveDate),
#[cfg(feature = "chrono")]
Time(&'a chrono::NaiveTime),
#[cfg(feature = "chrono")]
DateTime(&'a chrono::NaiveDateTime),
#[cfg(feature = "chrono")]
Instant(&'a chrono::DateTime<chrono::Utc>),
Duration(&'a std::time::Duration),
#[cfg(feature = "url")]
Url(&'a url::Url),
StringMap(&'a std::collections::HashMap<String, String>),
#[cfg(feature = "json")]
Json(&'a serde_json::Value),
}