Working with bit fields
Programs written in C don't have the possibility to use the Builder Pattern (Chapter 1, Learning the Basics; Using the builder pattern) to provide users with combinable options. Instead, they have to rely on bit fields. As C has historically become the lingua franca of system languages, you will have to interact with a lot of C code if you plan on wrapping existing programs in a Rust interface or vice versa. Because of this, you will sooner or later come in contact with bit fields. As Rust's enum
is way more complex than a C enum
, you have to instead rely on the bitflags
crate to provide you with all of the necessary functionality to comfortably handle bit fields.
Getting started
This chapter assumes that you know what a bit field is. Explaining it here doesn't make sense, as it would also incorporate an explanation of binary arithmetic and is not that relevant in your day-to-day Rust experience. For a good introduction to bit fields, check out this forum post and tutorial...