diff --git a/types/src/bool.rs b/types/src/bool.rs index 3f1aa00..4dc9702 100644 --- a/types/src/bool.rs +++ b/types/src/bool.rs @@ -1,30 +1,17 @@ -/* types/bool.rs +/* types/src/bool.rs * Eryn Wells */ -use std::any::Any; -use value::*; +use object::Object; +use predicates::IsBool; -#[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub struct Bool(pub bool); - -impl Value for Bool { - fn as_value(&self) -> &Value { self } -} - -impl IsBool for Bool { - fn is_bool(&self) -> bool { true } -} - -impl IsChar for Bool { } -impl IsNumber for Bool { } - -impl ValueEq for Bool { - fn eq(&self, other: &Value) -> bool { - other.as_any().downcast_ref::().map_or(false, |x| x == self) +impl IsBool for Object { + fn is_bool(&self) -> bool { + match *self { + Object::Bool(_) => true, + _ => false, + } } - - fn as_any(&self) -> &Any { self } } #[cfg(test)]