diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index f9cc869f12..e7feff9523 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -20,6 +20,7 @@ - [Preventing the Derivation of `Debug`](./nodebug.md) - [Preventing the Derivation of `Default`](./nodefault.md) - [Annotating types with `#[must-use]`](./must-use-types.md) + - [Field visibility](./visibility.md) - [Generating Bindings to C++](./cpp.md) - [Generating Bindings to Objective-c](./objc.md) - [Using Unions](./using-unions.md) diff --git a/book/src/visibility.md b/book/src/visibility.md new file mode 100644 index 0000000000..ac0aac15da --- /dev/null +++ b/book/src/visibility.md @@ -0,0 +1,37 @@ +# Making fields private + +Fields can be made private for various reasons. You may wish to enforce some invariant on the fields of a structure, which cannot be achieved if the field is public and can be set by any code. For example, you may wish to ensure that a pointer always points to something appropriate. + +### Annotation + +```c +struct OneFieldPrivate { + /** Null-terminated, static string.