On Thu, Nov 30, 2023 at 04:12:14PM +0000, Benno Lossin wrote: > > I don't know about Rust namespacing, but in other languages, how you > > have to especify namespaces tend to be ***far*** more verbose than > > just adding an O_ prefix. > > In this case we already have the `flags` namespace, so I thought about > just dropping the `O_` prefix altogether. Note that in C code, the flags are known to be an integer, and there are times when we assume that it's possible to take the bitfield, and then either (a) or'ing in bitfields from some other "namespace", because it's known that the open flags only use a certain number of the low bits of the integer, or even that O_RDONLY, O_WRONLY, and O_RDWR are 0, 1, and 2, repsectively, and so you can do something like ((flags & 0x03) + 1) such that 1 means "read access", 2 means "write access", and 3 (1|2) is read and write. This may make a programmer used to a type-strict language feel a little dirty, but again, this is a convention going back deckades, back when a PDP-11 had only 32k of words in its address space.... Cheers, - Ted