summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--book/src/SUMMARY.md1
-rw-r--r--book/src/must-use-types.md27
2 files changed, 28 insertions, 0 deletions
diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md
index 65ed0870..f9cc869f 100644
--- a/book/src/SUMMARY.md
+++ b/book/src/SUMMARY.md
@@ -19,6 +19,7 @@
- [Preventing the Derivation of `Copy` and `Clone`](./nocopy.md)
- [Preventing the Derivation of `Debug`](./nodebug.md)
- [Preventing the Derivation of `Default`](./nodefault.md)
+ - [Annotating types with `#[must-use]`](./must-use-types.md)
- [Generating Bindings to C++](./cpp.md)
- [Generating Bindings to Objective-c](./objc.md)
- [Using Unions](./using-unions.md)
diff --git a/book/src/must-use-types.md b/book/src/must-use-types.md
new file mode 100644
index 00000000..490339c9
--- /dev/null
+++ b/book/src/must-use-types.md
@@ -0,0 +1,27 @@
+# Annotating types with `#[must-use]`
+
+`bindgen` can be instructed to annotate certain types with
+[`#[must_use]`](https://doc.rust-lang.org/reference/attributes/diagnostics.html#the-must_use-attribute).
+
+Some libraries have a common error type, returned by lots of their functions,
+which needs to be checked after every call. In these cases it's useful to add `#[must_use]` to this type, so the Rust
+compiler emits a warning when the check is missing.
+### Library
+
+* [`bindgen::Builder::must_use_type`](https://docs.rs/bindgen/latest/bindgen/struct.Builder.html#method.must_use_type)
+
+### Command Line
+
+* `--must-use-type <regex>`
+
+### Annotations
+
+```c
+/** <div rustbindgen mustusetype></div> */
+struct ErrorType {
+ // ...
+};
+
+...
+```
+