 579| #![stable(feature = "rust1", since = "1.0.0")]
 581| use crate::clone::TrivialClone;
 582| use crate::iter::{self, FusedIterator, TrustedLen};
 583| use crate::marker::Destruct;
 584| use crate::ops::{self, ControlFlow, Deref, DerefMut, Residual, Try};
 585| use crate::panicking::{panic, panic_display};
 586| use crate::pin::Pin;
 587| use crate::{cmp, convert, hint, mem, slice};
 590| #[doc(search_unbox)]
 591| #[derive(Copy, Debug, Hash)]
 592| #[derive_const(Eq)]
 593| #[rustc_diagnostic_item = "Option"]
 594| #[lang = "Option"]
 595| #[stable(feature = "rust1", since = "1.0.0")]
 596| #[allow(clippy::derived_hash_with_manual_eq)] // PartialEq is manually implemented equivalently
 597| pub enum Option<T> {
 599|     #[lang = "None"]
 600|     #[stable(feature = "rust1", since = "1.0.0")]
 601|     None,
 603|     #[lang = "Some"]
 604|     #[stable(feature = "rust1", since = "1.0.0")]
 605|     Some(#[stable(feature = "rust1", since = "1.0.0")] T),
 606| }
 612| impl<T> Option<T> {
 628|     #[must_use = "if you intended to assert that this has a value, consider `.unwrap()` instead"]
 629|     #[inline]
 630|     #[stable(feature = "rust1", since = "1.0.0")]
 631|     #[rustc_const_stable(feature = "const_option_basics", since = "1.48.0")]
 632|     pub const fn is_some(&self) -> bool {
 654|     #[must_use]
 655|     #[inline]
 656|     #[stable(feature = "is_some_and", since = "1.70.0")]
 657|     #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")]
 658|     pub const fn is_some_and(self, f: impl [const] FnOnce(T) -> bool + [const] Destruct) -> bool {
 659|         match self {
 660|             None => false,
 661|             Some(x) => f(x),
 662|         }
 663|     }
 676|     #[must_use = "if you inten

... [truncated 31324 chars] ...

 flatten(self) -> Option<T> {
2850| }
2852| impl<'a, T> Option<&'a Option<T>> {
2871|     #[inline]
2872|     #[unstable(feature = "option_reference_flattening", issue = "149221")]
2873|     pub const fn flatten_ref(self) -> Option<&'a T> {
2879| }
2881| impl<'a, T> Option<&'a mut Option<T>> {
2902|     #[inline]
2903|     #[unstable(feature = "option_reference_flattening", issue = "149221")]
2904|     pub const fn flatten_ref(self) -> Option<&'a T> {
2931|     #[inline]
2932|     #[unstable(feature = "option_reference_flattening", issue = "149221")]
2933|     pub const fn flatten_mut(self) -> Option<&'a mut T> {
2939| }
2941| impl<T, const N: usize> [Option<T>; N] {
2958|     #[inline]
2959|     #[unstable(feature = "option_array_transpose", issue = "130828")]
2960|     pub fn transpose(self) -> Option<[T; N]> {
2963| }