Thanks to visit codestin.com
Credit goes to lib.rs

#bit-flags #bool #getter-setter #compact #single #bools

macro bool_to_bitflags

A library to compact multiple bools into a single bitflags field automatically with getters and setters

4 releases

0.1.3 Jun 22, 2024
0.1.2 May 14, 2024
0.1.1 Apr 2, 2024
0.1.0 Jan 3, 2024

#989 in Procedural macros

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

1,090 downloads per month

MIT license

29KB
672 lines

Bool To Bitflags

A library to compact multiple bools into a single bitflags field automatically with getters and setters.

See the documentation on docs.rs.


lib.rs:

bool-to-bitflags

A struct attribute macro to pack structs with multiple boolean fields into efficent byte packing.

This macro will make struct fields of type bool and Option<bool> be packed into a field called __generated_flags.

This field is responsible for storing the packed bits, and should not be messed with manually, other than to initialize as all-false with {StructName}GeneratedFlags::empty() or all-true with {StructName}GeneratedFlags::all().

Arguments

Argument Name Type Default Value Description
getter_prefix String The prefix before getter names
setter_prefix String set_ The prefix before setter names
private_getters bool Field Visibility If true, getters are forced to be crate-private
private_setters bool Field Visibility If true, setters are forced to be crate-private
document_setters bool false If true, field documentation is used for setters, instead of getters
owning_setters bool false If true, setters take self and return self instead of taking &mut self

MSRV

The Minimum Supported Rust Version of this crate is 1.65.

It is considered a breaking change to raise this requirement.

Dependencies

~0.6–1.3MB
~27K SLoC