Skip to content

Commit

Permalink
Some Result combinations work like an Option.
Browse files Browse the repository at this point in the history
  • Loading branch information
Lokathor committed May 8, 2024
1 parent d71b3f4 commit f94fa6b
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions library/core/src/result.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,21 @@
//! [`Err(E)`]: Err
//! [io::Error]: ../../std/io/struct.Error.html "io::Error"
//!
//! # Representation
//!
//! In some cases, [`Result<T, E>`] will gain the same size, alignment, and ABI
//! guarantees as [`Option<T>`] has. One of either the `T` or `E` type must be a
//! type that qualifies for `Option` guarantees, and the *other* type must meet
//! all of the following conditions:
//! * Is a zero-sized type with alignment 1 (a "1-ZST").
//! * Has no fields.
//! * Does not have the #[non_exhaustive] attribute.
//!
//! For example, `Result<NonZeroI32, ()>` or `Result<(), NonZeroI32>` would both
//! have the same guarantees as `Option<NonZeroI32>`. The only difference is the
//! implied semantics: `Result<NonZeroI32, ()>` is "a non-zero success value"
//! while `Result<(), NonZeroI32>` is "a non-zero error value".
//!
//! # Method overview
//!
//! In addition to working with pattern matching, [`Result`] provides a
Expand Down

0 comments on commit f94fa6b

Please sign in to comment.