Skip to content

Commit

Permalink
update ABI compatibility docs for new option-like rules
Browse files Browse the repository at this point in the history
  • Loading branch information
RalfJung committed Oct 21, 2024
1 parent e2b2c3a commit 8499ec3
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions core/src/primitive_docs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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:
///
Expand Down

0 comments on commit 8499ec3

Please sign in to comment.