diff --git a/src/libstd/bool.rs b/src/libstd/bool.rs index b0b586df4b5..126650981cd 100644 --- a/src/libstd/bool.rs +++ b/src/libstd/bool.rs @@ -19,6 +19,8 @@ A quick summary: Implementations of the following traits: * `FromStr` +* `ToStr` +* `Not` * `Ord` * `TotalOrd` * `Eq` @@ -36,6 +38,8 @@ Finally, some inquries into the nature of truth: `is_true` and `is_false`. #[cfg(not(test))] use cmp::{Eq, Ord, TotalOrd, Ordering}; +#[cfg(not(test))] +use ops::Not; use option::{None, Option, Some}; use from_str::FromStr; use to_str::ToStr; @@ -254,6 +258,27 @@ pub fn all_values(blk: &fn(v: bool)) { #[inline] pub fn to_bit(v: bool) -> u8 { if v { 1u8 } else { 0u8 } } +/** +* The logical complement of a boolean value. +* +* # Examples +* +* ~~~rust +* rusti> !true +* false +* ~~~ +* +* ~~~rust +* rusti> !false +* true +* ~~~ +*/ +#[cfg(not(test))] +impl Not for bool { + #[inline] + fn not(&self) -> bool { !*self } +} + #[cfg(not(test))] impl Ord for bool { #[inline]