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 PartialEq<bool> for bool
1.0.0
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 bool
1.0.0
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 bool
1.0.0
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 bool
1.0.0
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 bool
1.0.0
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 Default for bool
1.0.0
impl Clone for bool
1.0.0
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 BitAnd<bool> for bool
1.0.0
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 bool
1.0.0
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 bool
1.0.0
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 bool
1.0.0
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 BitOrAssign<bool> for bool
1.8.0
fn bitor_assign(&mut self, other: bool)
The method for the |=
operator
impl BitXorAssign<bool> for bool
1.8.0
fn bitxor_assign(&mut self, other: bool)
The method for the ^=
operator
impl Display for bool
1.0.0
impl FromStr for bool
1.0.0
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
fn main() { 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()); }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
impl BitOr<bool> for bool
1.0.0
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 bool
1.0.0
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 bool
1.0.0
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 bool
1.0.0
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 Ord for bool
1.0.0
fn cmp(&self, other: &bool) -> Ordering
This method returns an Ordering
between self
and other
. Read more
impl Debug for bool
1.0.0
impl Not for bool
1.0.0
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 bool
1.0.0
type Output = bool::Output
The resulting type after applying the !
operator
fn not(self) -> bool::Output
The method for the unary !
operator
impl Eq for bool
1.0.0
impl BitAndAssign<bool> for bool
1.8.0
fn bitand_assign(&mut self, other: bool)
The method for the &
operator
impl Hash for bool
1.0.0
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: Hasher
1.3.0
Feeds a slice of this type into the state provided.
impl PartialOrd<bool> for bool
1.0.0
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) -> bool
1.0.0
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.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) -> bool
1.0.0
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more