use crate::haystack::val::{ConversionError, Value};
#[derive(PartialEq, PartialOrd, Eq, Ord, Hash, Copy, Clone, Debug, Default)]
pub struct Bool {
pub value: bool,
}
impl From<bool> for Bool {
fn from(value: bool) -> Self {
Bool { value }
}
}
impl From<Bool> for bool {
fn from(value: Bool) -> Self {
value.value
}
}
impl From<bool> for Value {
fn from(value: bool) -> Self {
Value::Bool(Bool::from(value))
}
}
impl From<Bool> for Value {
fn from(value: Bool) -> Self {
Value::Bool(value)
}
}
impl TryFrom<&Value> for bool {
type Error = ConversionError;
fn try_from(value: &Value) -> Result<Self, Self::Error> {
match value {
Value::Bool(v) => Ok(v.value),
_ => Err("Value is not an `Bool`"),
}
}
}
impl TryFrom<&Value> for Bool {
type Error = ConversionError;
fn try_from(value: &Value) -> Result<Self, Self::Error> {
match value {
Value::Bool(v) => Ok(*v),
_ => Err("Value is not an `Bool`"),
}
}
}