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.




















































