Skip to main content
Log in

Mojo struct

Bool

The primitive Bool scalar value used in Mojo.

Fields

  • value (i1): The underlying storage of the boolean value.

Implemented traits

AnyType, Boolable, CollectionElement, CollectionElementNew, Comparable, ComparableCollectionElement, Copyable, Defaultable, EqualityComparable, ExplicitlyCopyable, Formattable, ImplicitlyBoolable, Indexer, Intable, Movable, Representable, Stringable

Methods

__init__

__init__(inout self: Self)

Construct a default, False Bool.

__init__(inout self: Self, *, other: Self)

Explicitly construct a deep copy of the provided value.

Args:

  • other (Self): The value to copy.

__init__(inout self: Self, value: i1)

Construct a Bool value given a __mlir_type.i1 value.

Args:

  • value (i1): The initial __mlir_type.i1 value.

__init__(inout self: Self, value: scalar<bool>)

Construct a Bool value given a !pop.scalar<bool> value.

Args:

  • value (scalar<bool>): The initial value.

__init__[T: ImplicitlyBoolable, //](inout self: Self, value: T)

Convert an ImplicitlyBoolable value to a Bool.

Parameters:

  • T (ImplicitlyBoolable): The ImplicitlyBoolable type.

Args:

  • value (T): The boolable value.

__init__(inout self: Self, value: SIMD[bool, 1])

Convert a scalar SIMD value to a Bool.

Args:

  • value (SIMD[bool, 1]): The scalar value.

__bool__

__bool__(self: Self) -> Self

Convert to Bool.

Returns:

This value.

__neg__

__neg__(self: Self) -> Int

Defines the unary - operation.

Returns:

0 for -False and -1 for -True.

__invert__

__invert__(self: Self) -> Self

Inverts the Bool value.

Returns:

True if the object is false and False otherwise.

__lt__

__lt__(self: Self, rhs: Self) -> Self

Compare this Bool to RHS using less-than comparison.

Args:

  • rhs (Self): The rhs of the operation.

Returns:

True if self is False and rhs is True.

__le__

__le__(self: Self, rhs: Self) -> Self

Compare this Bool to RHS using less-than-or-equal comparison.

Args:

  • rhs (Self): The rhs of the operation.

Returns:

True if self is False and rhs is True or False.

__eq__

__eq__(self: Self, rhs: Self) -> Self

Compare this Bool to RHS.

Performs an equality comparison between the Bool value and the argument. This method gets invoked when a user uses the == infix operator.

Args:

  • rhs (Self): The rhs value of the equality statement.

Returns:

True if the two values match and False otherwise.

__ne__

__ne__(self: Self, rhs: Self) -> Self

Compare this Bool to RHS.

Performs a non-equality comparison between the Bool value and the argument. This method gets invoked when a user uses the != infix operator.

Args:

  • rhs (Self): The rhs value of the non-equality statement.

Returns:

False if the two values do match and True otherwise.

__gt__

__gt__(self: Self, rhs: Self) -> Self

Compare this Bool to RHS using greater-than comparison.

Args:

  • rhs (Self): The rhs of the operation.

Returns:

True if self is True and rhs is False.

__ge__

__ge__(self: Self, rhs: Self) -> Self

Compare this Bool to RHS using greater-than-or-equal comparison.

Args:

  • rhs (Self): The rhs of the operation.

Returns:

True if self is True and rhs is True or False.

__and__

__and__(self: Self, rhs: Self) -> Self

Returns self & rhs.

Bitwise and's the Bool value with the argument. This method gets invoked when a user uses the and infix operator.

Args:

  • rhs (Self): The right hand side of the and statement.

Returns:

self & rhs.

__or__

__or__(self: Self, rhs: Self) -> Self

Returns self | rhs.

Bitwise or's the Bool value with the argument. This method gets invoked when a user uses the or infix operator.

Args:

  • rhs (Self): The right hand side of the or statement.

Returns:

self | rhs.

__xor__

__xor__(self: Self, rhs: Self) -> Self

Returns self ^ rhs.

Bitwise Xor's the Bool value with the argument. This method gets invoked when a user uses the ^ infix operator.

Args:

  • rhs (Self): The right hand side of the xor statement.

Returns:

self ^ rhs.

__rand__

__rand__(self: Self, lhs: Self) -> Self

Returns lhs & self.

Args:

  • lhs (Self): The left hand side of the and statement.

Returns:

lhs & self.

__ror__

__ror__(self: Self, lhs: Self) -> Self

Returns lhs | self.

Args:

  • lhs (Self): The left hand side of the or statement.

Returns:

lhs | self.

__rxor__

__rxor__(self: Self, lhs: Self) -> Self

Returns lhs ^ self.

Args:

  • lhs (Self): The left hand side of the xor statement.

Returns:

lhs ^ self.

__iand__

__iand__(inout self: Self, rhs: Self)

Computes self & rhs and store the result in self.

Args:

  • rhs (Self): The right hand side of the and statement.

__ixor__

__ixor__(inout self: Self, rhs: Self)

Computes self ^ rhs and stores the result in self.

Args:

  • rhs (Self): The right hand side of the xor statement.

__ior__

__ior__(inout self: Self, rhs: Self)

Computes self | rhs and store the result in self.

Args:

  • rhs (Self): The right hand side of the or statement.

__as_bool__

__as_bool__(self: Self) -> Self

Convert to Bool.

Returns:

This value.

__str__

__str__(self: Self) -> String

Get the bool as a string.

Returns "True" or "False".

Returns:

A string representation.

format_to

format_to(self: Self, inout writer: Formatter)

Formats this boolean to the provided formatter.

Args:

  • writer (Formatter): The formatter to write to.

__repr__

__repr__(self: Self) -> String

Get the bool as a string.

Returns "True" or "False".

Returns:

A string representation.

__int__

__int__(self: Self) -> Int

Convert this Bool to an integer.

Returns:

1 if the Bool is True, 0 otherwise.

__index__

__index__(self: Self) -> Int

Convert this Bool to an integer for indexing purposes.

Returns:

1 if the Bool is True, 0 otherwise.

Was this page helpful?