# std.os.uefi: reorganize namespaces · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/a31748b29e2e980ac4bf08cf10ee0d6ece1bd9e7)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: a31748b29e2e980ac4bf08cf10ee0d6ece1bd9e7

Requested commit: a31748b29e2e980ac4bf08cf10ee0d6ece1bd9e7

Commit: a31748b29e2e980ac4bf08cf10ee0d6ece1bd9e7

Tree: 243e0c9ab202d8aa83a88302af00da1881b41b0a

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
std.os.uefi: reorganize namespaces

This is a breaking change.

This commit applies the following rules to std.os.uefi:
* avoid redundant names in the namespace such as "protocol.FooProtocol"
* don't initialize struct field to undefined. do that at the
  initialization site if you want that, or create a named constant that
  sets all the fields to undefined.
* avoid the word "data", "info", "context", "state", "details", or
  "config" in the type name, especially if a word from that category is
  already in the type name.
* embrace tree structure

After following these rules, `usingnamespace` disappeared naturally.
This commit eliminates 26/53 (49%) instances of `usingnamespace` in the
standard library. All these uses were due to not understanding how
to properly use namespaces.

I did not test this commit. The standard library UEFI code is
experimental and pull requests have been accepted with minimal vetting.
Users of std.os.uefi will need to submit follow-up pull requests to fix
up whatever regressions this commit introduces, this time without
abusing namespaces (pun intended).

```

## Parents

- [dd6a9caeaf98b0f1c3c91291dab46e62b224c94f](https://git.cafe/gitcafe/zig/commit/dd6a9caeaf98b0f1c3c91291dab46e62b224c94f?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/a31748b29e2e980ac4bf08cf10ee0d6ece1bd9e7?format=markdown)
