---
name: "MouseX::NativeTraits::Bool"
section: "3pm"
platform: "linux"
package: "libmousex-nativetraits-perl"
version: "1.09-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MouseX::NativeTraits::Bool"
---

# MouseX::NativeTraits::Bool(3pm)

Helper trait for Bool attributes

## NAME

MouseX::NativeTraits::Bool - Helper trait for Bool attributes

## SYNOPSIS

```
  package Room;
  use Mouse;
  has 'is_lit' => (
      traits    => ['Bool'],
      is        => 'rw',
      isa       => 'Bool',
      default   => 0,
      handles   => {
          illuminate  => 'set',
          darken      => 'unset',
          flip_switch => 'toggle',
          is_dark     => 'not',
      },
  );
  my $room = Room->new();
  $room->illuminate;     # same as $room->is_lit(1);
  $room->darken;         # same as $room->is_lit(0);
  $room->flip_switch;    # same as $room->is_lit(not $room->is_lit);
  return $room->is_dark; # same as !$room->is_lit
```

## DESCRIPTION

This provides a simple boolean attribute, which supports most of the basic math operations.

## PROVIDED METHODS

These methods are implemented in MouseX::NativeTraits::MethodProvider::Bool. It is important to note that all those methods do in place modification of the value stored in the attribute.

- **set**

  Sets the value to true.

- **unset**

  Set the value to false.

- **toggle**

  Toggles the value. If it's true, set to false, and vice versa.

- **not**

  Equivalent of 'not `$value`'.

## METHODS

- **meta**

  - **method\_provider\_class**

  - **helper\_type**

  ## SEE ALSO

MouseX::NativeTraits.
