4 releases
0.2.2 | Jun 8, 2024 |
---|---|
0.2.1 | Jun 8, 2024 |
0.2.0 | Apr 13, 2024 |
0.1.0 | Apr 13, 2024 |
#795 in Rust patterns
195 downloads per month
50KB
331 lines
Bit Roles
This crate enables you to implement granular role and permission management based on bit flags.
Using discrete fields | Using bit roles |
---|---|
|
|
Getting started
Add bit_roles
to your project:
cargo add bit_roles
Usage
You can derive the BitRole
trait for your role enum. It ensures compile-time validation for enum discriminants. Ensure
you specify a discriminant for every enum variant; it must be either zero or a power of two. Also, remember to derive
the Copy
and Clone
traits for your enum.
If you need a manager without compile-time checks, it's also exported as BitRoleUnchecked
trait. This is useful if you
want to use raw integer values for roles or have a complex role enum definition. You will need to implement
the Into<usize>
trait for your role enum, along with deriving the Copy
and Clone
traits for it.
Dependencies
~250–710KB
~17K SLoC