Primitive Type bool [−]
The boolean type.
The bool represents a value, which could only be either true or false.
Basic usage
bool implements various traits, such as BitAnd, BitOr, Not, etc.,
which allow us to perform boolean operations using &, | and !.
if always demands a bool value. assert!, being an important macro in testing,
checks whether an expression returns true.
let bool_val = true & false | false; assert!(!bool_val);Run
Examples
A trivial example of the usage of bool,
let praise_the_borrow_checker = true; // using the `if` conditional if praise_the_borrow_checker { println!("oh, yeah!"); } else { println!("what?!!"); } // ... or, a match pattern match praise_the_borrow_checker { true => println!("keep praising!"), false => println!("you should praise!"), }Run
Also, since bool implements the Copy trait, we don't
have to worry about the move semantics (just like the integer and float primitives).
Trait Implementations
impl BitXorAssign<bool> for bool1.8.0[src]
fn bitxor_assign(&mut self, other: bool)
The method for the ^= operator
impl PartialOrd<bool> for bool1.0.0[src]
fn partial_cmp(&self, other: &bool) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool1.0.0
This method tests less than (for self and other) and is used by the < operator. Read more
fn le(&self, other: &Rhs) -> bool1.0.0
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
fn gt(&self, other: &Rhs) -> bool1.0.0
This method tests greater than (for self and other) and is used by the > operator. Read more
fn ge(&self, other: &Rhs) -> bool1.0.0
This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
impl BitAnd<bool> for bool1.0.0[src]
type Output = bool
The resulting type after applying the & operator
fn bitand(self, rhs: bool) -> bool
The method for the & operator
impl<'a> BitAnd<bool> for &'a bool1.0.0[src]
type Output = bool::Output
The resulting type after applying the & operator
fn bitand(self, other: bool) -> bool::Output
The method for the & operator
impl<'a> BitAnd<&'a bool> for bool1.0.0[src]
type Output = bool::Output
The resulting type after applying the & operator
fn bitand(self, other: &'a bool) -> bool::Output
The method for the & operator
impl<'a, 'b> BitAnd<&'a bool> for &'b bool1.0.0[src]
type Output = bool::Output
The resulting type after applying the & operator
fn bitand(self, other: &'a bool) -> bool::Output
The method for the & operator
impl Ord for bool1.0.0[src]
fn cmp(&self, other: &bool) -> Ordering
This method returns an Ordering between self and other. Read more
impl Not for bool1.0.0[src]
type Output = bool
The resulting type after applying the ! operator
fn not(self) -> bool
The method for the unary ! operator
impl<'a> Not for &'a bool1.0.0[src]
type Output = bool::Output
The resulting type after applying the ! operator
fn not(self) -> bool::Output
The method for the unary ! operator
impl PartialEq<bool> for bool1.0.0[src]
fn eq(&self, other: &bool) -> bool
This method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, other: &bool) -> bool
This method tests for !=.
impl BitXor<bool> for bool1.0.0[src]
type Output = bool
The resulting type after applying the ^ operator
fn bitxor(self, other: bool) -> bool
The method for the ^ operator
impl<'a> BitXor<bool> for &'a bool1.0.0[src]
type Output = bool::Output
The resulting type after applying the ^ operator
fn bitxor(self, other: bool) -> bool::Output
The method for the ^ operator
impl<'a> BitXor<&'a bool> for bool1.0.0[src]
type Output = bool::Output
The resulting type after applying the ^ operator
fn bitxor(self, other: &'a bool) -> bool::Output
The method for the ^ operator
impl<'a, 'b> BitXor<&'a bool> for &'b bool1.0.0[src]
type Output = bool::Output
The resulting type after applying the ^ operator
fn bitxor(self, other: &'a bool) -> bool::Output
The method for the ^ operator
impl Display for bool1.0.0[src]
impl BitAndAssign<bool> for bool1.8.0[src]
fn bitand_assign(&mut self, other: bool)
The method for the &= operator
impl Clone for bool1.0.0[src]
fn clone(&self) -> bool
Returns a deep copy of the value.
fn clone_from(&mut self, source: &Self)1.0.0
Performs copy-assignment from source. Read more
impl Debug for bool1.0.0[src]
impl Default for bool1.0.0[src]
impl BitOr<bool> for bool1.0.0[src]
type Output = bool
The resulting type after applying the | operator
fn bitor(self, rhs: bool) -> bool
The method for the | operator
impl<'a> BitOr<bool> for &'a bool1.0.0[src]
type Output = bool::Output
The resulting type after applying the | operator
fn bitor(self, other: bool) -> bool::Output
The method for the | operator
impl<'a> BitOr<&'a bool> for bool1.0.0[src]
type Output = bool::Output
The resulting type after applying the | operator
fn bitor(self, other: &'a bool) -> bool::Output
The method for the | operator
impl<'a, 'b> BitOr<&'a bool> for &'b bool1.0.0[src]
type Output = bool::Output
The resulting type after applying the | operator
fn bitor(self, other: &'a bool) -> bool::Output
The method for the | operator
impl BitOrAssign<bool> for bool1.8.0[src]
fn bitor_assign(&mut self, other: bool)
The method for the |= operator
impl Hash for bool1.0.0[src]
fn hash<H>(&self, state: &mut H) where H: Hasher
Feeds this value into the state given, updating the hasher as necessary.
fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher1.3.0
Feeds a slice of this type into the state provided.
impl Eq for bool1.0.0[src]
impl FromStr for bool1.0.0[src]
type Err = ParseBoolError
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<bool, ParseBoolError>
Parse a bool from a string.
Yields a Result<bool, ParseBoolError>, because s may or may not
actually be parseable.
Examples
use std::str::FromStr; assert_eq!(FromStr::from_str("true"), Ok(true)); assert_eq!(FromStr::from_str("false"), Ok(false)); assert!(<bool as FromStr>::from_str("not even a boolean").is_err());Run
Note, in many cases, the .parse() method on str is more proper.
assert_eq!("true".parse(), Ok(true)); assert_eq!("false".parse(), Ok(false)); assert!("not even a boolean".parse::<bool>().is_err());Run