2017-04-22 09:30:28 -07:00
|
|
|
/* types/src/bool.rs
|
2017-04-03 14:51:39 -04:00
|
|
|
* Eryn Wells <eryn@erynwells.me>
|
|
|
|
*/
|
|
|
|
|
2017-04-22 09:30:28 -07:00
|
|
|
use object::Object;
|
|
|
|
use predicates::IsBool;
|
2017-04-03 14:51:39 -04:00
|
|
|
|
2017-04-22 09:30:28 -07:00
|
|
|
impl IsBool for Object {
|
|
|
|
fn is_bool(&self) -> bool {
|
|
|
|
match *self {
|
|
|
|
Object::Bool(_) => true,
|
|
|
|
_ => false,
|
|
|
|
}
|
2017-04-03 14:51:39 -04:00
|
|
|
}
|
|
|
|
}
|
2017-04-03 16:40:23 -04:00
|
|
|
|
|
|
|
#[cfg(test)]
|
|
|
|
mod tests {
|
2017-04-22 12:29:43 -07:00
|
|
|
use object::Object;
|
|
|
|
use predicates::{IsBool, IsChar};
|
2017-04-03 16:40:23 -04:00
|
|
|
|
|
|
|
#[test]
|
2017-04-22 12:29:43 -07:00
|
|
|
fn bools_are_bools() {
|
|
|
|
assert_eq!(Object::Bool(false).is_bool(), true);
|
|
|
|
assert_eq!(Object::Bool(false).is_char(), false);
|
2017-04-03 16:44:04 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2017-04-22 12:29:43 -07:00
|
|
|
fn equal_bools_are_equal() {
|
|
|
|
assert_eq!(Object::Bool(true), Object::Bool(true));
|
|
|
|
assert_eq!(Object::Bool(false), Object::Bool(false));
|
|
|
|
assert_ne!(Object::Bool(true), Object::Bool(false));
|
2017-04-03 16:40:23 -04:00
|
|
|
}
|
|
|
|
}
|