David Laight <David.Laight@xxxxxxxxxx> writes: > > > 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. > > Does rust have a 'using namespace' (or similar) so that namespace doesn't > have to be explicitly specified each time a value is used? > If so you still need a hint about which set of values it is from. > > Otherwise you get into the same mess as C++ class members (I think > they should have been .member from the start). > Or, worse still, Pascal and multiple 'with' blocks. Yes. You can import it with a use statement. For example: use kernel::file::flags::O_RDONLY; // use as O_RDONLY or: use kernel::file::flags::{O_RDONLY, O_WRONLY, O_RDWR}; // use as O_RDONLY or: use kernel::file::flags::*; // use as O_RDONLY If you want to specify a namespace every time you use it, then it is possible: (But often you wouldn't do that.) use kernel::file::flags; // use as flags::O_RDONLY or: use kernel::file; // use as file::flags::O_RDONLY or: use kernel::file::flags as file_flags; // use as file_flags::O_RDONLY And you can also use the full path if you don't want to add a `use` statement. Alice