diff options
| author | Ralf Jung <post@ralfj.de> | 2024-10-21 16:25:06 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2024-10-21 16:25:32 +0100 |
| commit | 75cadc09f24bed287d44462ea62f7aa3e4909e77 (patch) | |
| tree | 9a7a0a34076636d8b5311b3ae42237abce521416 | |
| parent | 3ec4308f6cb4bba3140d736d9ebd53b234fa7df8 (diff) | |
| download | rust-75cadc09f24bed287d44462ea62f7aa3e4909e77.tar.gz rust-75cadc09f24bed287d44462ea62f7aa3e4909e77.zip | |
update ABI compatibility docs for new option-like rules
| -rw-r--r-- | library/core/src/primitive_docs.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/library/core/src/primitive_docs.rs b/library/core/src/primitive_docs.rs index 22fd47b0596..95fa6c9c950 100644 --- a/library/core/src/primitive_docs.rs +++ b/library/core/src/primitive_docs.rs @@ -1784,9 +1784,11 @@ mod prim_ref {} /// unique field that doesn't have size 0 and alignment 1 (if there is such a field). /// - `i32` is ABI-compatible with `NonZero<i32>`, and similar for all other integer types. /// - If `T` is guaranteed to be subject to the [null pointer -/// optimization](option/index.html#representation), then `T` and `Option<T>` are ABI-compatible. -/// Furthermore, if `U` satisfies the requirements [outlined here](result/index.html#representation), -/// then `T` and `Result<T, U>` and `Result<U, T>` are all ABI-compatible. +/// optimization](option/index.html#representation), and `E` is an enum satisfying the following +/// requirements, then `T` and `E` are ABI-compatible. Such an enum `E` is called "option-like". +/// - The enum `E` has exactly two variants. +/// - One variant has exactly one field, of type `T`. +/// - All fields of the other variant are zero-sized with 1-byte alignment. /// /// Furthermore, ABI compatibility satisfies the following general properties: /// |
