In C and C++, a common workflow is to define a set of bits as flags. They are generally defined at powers of two, so the first flag will have the decimal value of one, the second one will have two, and so on. This helps in performing logical combinations of those flags. The Rust ecosystem has a crate to facilitate the same workflow. Let's look at an example of using the bitflags crate for working with flags. Let's start with initializing an empty project using Cargo:
$ cargo new --bin bitflags-example
We will set up our project manifest to add bitflags as a dependency:
$ cat Cargo.toml
[package]
name = "bitflags-example"
version = "0.1.0"
authors = ["Foo <foo@bar.com>"]
[dependencies]
bitflags = "1.0"
When all of that is ready, our main file will look like this:
// appendix/bitflags-example/src/main.rs
#...