Skip to main content

UnwindSafe

Trait UnwindSafe 

1.41.0 ยท Source
pub auto trait UnwindSafe { }
Expand description

A marker trait which represents โ€œpanic safeโ€ types in Rust.

This trait is implemented by default for many types and behaves similarly in terms of inference of implementation to the Send and Sync traits. The purpose of this trait is to encode what types are safe to cross a catch_unwind boundary with no fear of unwind safety.

ยงWhat is unwind safety?

In Rust a function can โ€œreturnโ€ early if it either panics or calls a function which transitively panics. This sort of control flow is not always anticipated, and has the possibility of causing subtle bugs through a combination of two critical components:

  1. A data structure is in a temporarily invalid state when the thread panics.
  2. This broken invariant is then later observed.

Typically in Rust, it is difficult to perform step (2) because catching a panic involves either spawning a thread (which in turn makes it difficult to later witness broken invariants) or using the catch_unwind function in this module. Additionally, even if an invariant is witnessed, it typically isnโ€™t a problem in Rust because there are no uninitialized values (like in C or C++).

It is possible, however, for logical invariants to be broken in Rust, which can end up causing behavioral bugs. Another key aspect of unwind safety in Rust is that, in the absence of unsafe code, a panic cannot lead to memory unsafety.

That was a bit of a whirlwind tour of unwind safety, but for more information about unwind safety and how it applies to Rust, see an associated RFC.

ยงWhat is UnwindSafe?

Now that weโ€™ve got an idea of what unwind safety is in Rust, itโ€™s also important to understand what this trait represents. As mentioned above, one way to witness broken invariants is through the catch_unwind function in this module as it allows catching a panic and then re-using the environment of the closure.

Simply put, a type T implements UnwindSafe if it cannot easily allow witnessing a broken invariant through the use of catch_unwind (catching a panic). This trait is an auto trait, so it is automatically implemented for many types, and it is also structurally composed (e.g., a struct is unwind safe if all of its components are unwind safe).

Note, however, that this is not an unsafe trait, so there is not a succinct contract that this trait is providing. Instead it is intended as more of a โ€œspeed bumpโ€ to alert users of catch_unwind that broken invariants may be witnessed and may need to be accounted for.

ยงWho implements UnwindSafe?

Types such as &mut T and &RefCell<T> are examples which are not unwind safe. The general idea is that any mutable state which can be shared across catch_unwind is not unwind safe by default. This is because it is very easy to witness a broken invariant outside of catch_unwind as the data is simply accessed as usual.

Types like &Mutex<T>, however, are unwind safe because they implement poisoning by default. They still allow witnessing a broken invariant, but they already provide their own โ€œspeed bumpsโ€ to do so.

ยงWhen should UnwindSafe be used?

It is not intended that most types or functions need to worry about this trait. It is only used as a bound on the catch_unwind function and as mentioned above, the lack of unsafe means it is mostly an advisory. The AssertUnwindSafe wrapper struct can be used to force this trait to be implemented for any closed over variables passed to catch_unwind.

Dyn Compatibilityยง

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementorsยง

Auto implementorsยง

ยง

impl !UnwindSafe for core::io::Error

ยง

impl UnwindSafe for !

ยง

impl UnwindSafe for ()

ยง

impl UnwindSafe for Abi

ยง

impl UnwindSafe for AddrParseError

ยง

impl UnwindSafe for core::mem::Alignment

ยง

impl UnwindSafe for core::fmt::Alignment

ยง

impl UnwindSafe for AllocError

ยง

impl UnwindSafe for Array

ยง

impl UnwindSafe for AsciiChar

ยง

impl UnwindSafe for Assume

ยง

impl UnwindSafe for AtomicOrdering

ยง

impl UnwindSafe for BasicBlock

ยง

impl UnwindSafe for Bool

ยง

impl UnwindSafe for BorrowError

ยง

impl UnwindSafe for BorrowMutError

ยง

impl UnwindSafe for ByteStr

ยง

impl UnwindSafe for CStr

ยง

impl UnwindSafe for Char

ยง

impl UnwindSafe for CharCase

ยง

impl UnwindSafe for CharTryFromError

ยง

impl UnwindSafe for Const

ยง

impl UnwindSafe for CpuidResult

ยง

impl UnwindSafe for DebugAsHex

ยง

impl UnwindSafe for DecodeUtf16Error

ยง

impl UnwindSafe for Duration

ยง

impl UnwindSafe for DynTrait

ยง

impl UnwindSafe for DynTraitPredicate

ยง

impl UnwindSafe for core::io::Empty

ยง

impl UnwindSafe for Enum

ยง

impl UnwindSafe for core::fmt::Error

ยง

impl UnwindSafe for ErrorKind

ยง

impl UnwindSafe for core::char::EscapeDebug

ยง

impl UnwindSafe for core::ascii::EscapeDefault

ยง

impl UnwindSafe for core::char::EscapeDefault

ยง

impl UnwindSafe for core::char::EscapeUnicode

ยง

impl UnwindSafe for Field

ยง

impl UnwindSafe for FieldId

ยง

impl UnwindSafe for Float

ยง

impl UnwindSafe for FnPtr

ยง

impl UnwindSafe for FormattingOptions

ยง

impl UnwindSafe for FpCategory

ยง

impl UnwindSafe for FromBytesUntilNulError

ยง

impl UnwindSafe for FromBytesWithNulError

ยง

impl UnwindSafe for Generic

ยง

impl UnwindSafe for GenericType

ยง

impl UnwindSafe for GetDisjointMutError

ยง

impl UnwindSafe for core::arch::hexagon::v64::HvxVector

ยง

impl UnwindSafe for core::arch::hexagon::v128::HvxVector

ยง

impl UnwindSafe for core::arch::hexagon::v64::HvxVectorPair

ยง

impl UnwindSafe for core::arch::hexagon::v128::HvxVectorPair

ยง

impl UnwindSafe for core::arch::hexagon::v64::HvxVectorPred

ยง

impl UnwindSafe for core::arch::hexagon::v128::HvxVectorPred

ยง

impl UnwindSafe for Infallible

ยง

impl UnwindSafe for Int

ยง

impl UnwindSafe for IntErrorKind

ยง

impl UnwindSafe for IpAddr

ยง

impl UnwindSafe for Ipv4Addr

ยง

impl UnwindSafe for Ipv6Addr

ยง

impl UnwindSafe for Ipv6MulticastScope

ยง

impl UnwindSafe for Last

ยง

impl UnwindSafe for Layout

ยง

impl UnwindSafe for LayoutError

ยง

impl UnwindSafe for Lifetime

ยง

impl UnwindSafe for LocalWaker

ยง

impl UnwindSafe for Locality

ยง

impl UnwindSafe for OneSidedRangeBound

ยง

impl UnwindSafe for core::cmp::Ordering

ยง

impl UnwindSafe for core::sync::atomic::Ordering

ยง

impl UnwindSafe for ParseBoolError

ยง

impl UnwindSafe for ParseCharError

ยง

impl UnwindSafe for ParseFloatError

ยง

impl UnwindSafe for ParseIntError

ยง

impl UnwindSafe for PhantomPinned

ยง

impl UnwindSafe for Pointer

ยง

impl UnwindSafe for RangeFull

ยง

impl UnwindSafe for RawWaker

ยง

impl UnwindSafe for RawWakerVTable

ยง

impl UnwindSafe for Reference

ยง

impl UnwindSafe for core::io::Repeat

ยง

impl UnwindSafe for ReturnToArg

ยง

impl UnwindSafe for SY

ยง

impl UnwindSafe for SearchStep

ยง

impl UnwindSafe for Sign

ยง

impl UnwindSafe for SimdAlign

ยง

impl UnwindSafe for Sink

ยง

impl UnwindSafe for SipHasher

ยง

impl UnwindSafe for Slice

ยง

impl UnwindSafe for SocketAddr

ยง

impl UnwindSafe for SocketAddrV4

ยง

impl UnwindSafe for SocketAddrV6

ยง

impl UnwindSafe for Str

ยง

impl UnwindSafe for Struct

ยง

impl UnwindSafe for ToCasefold

ยง

impl UnwindSafe for ToLowercase

ยง

impl UnwindSafe for ToTitlecase

ยง

impl UnwindSafe for ToUppercase

ยง

impl UnwindSafe for Trait

ยง

impl UnwindSafe for TryFromCharError

ยง

impl UnwindSafe for TryFromFloatSecsError

ยง

impl UnwindSafe for TryFromIntError

ยง

impl UnwindSafe for TryFromSliceError

ยง

impl UnwindSafe for Tuple

ยง

impl UnwindSafe for Type

ยง

impl UnwindSafe for TypeId

ยง

impl UnwindSafe for TypeKind

ยง

impl UnwindSafe for Union

ยง

impl UnwindSafe for UnwindActionArg

ยง

impl UnwindSafe for UnwindTerminateReason

ยง

impl UnwindSafe for Utf8Error

ยง

impl UnwindSafe for Variant

ยง

impl UnwindSafe for Waker

ยง

impl UnwindSafe for __m128

ยง

impl UnwindSafe for __m256

ยง

impl UnwindSafe for __m512

ยง

impl UnwindSafe for __m128bh

ยง

impl UnwindSafe for __m128d

ยง

impl UnwindSafe for __m128h

ยง

impl UnwindSafe for __m128i

ยง

impl UnwindSafe for __m256bh

ยง

impl UnwindSafe for __m256d

ยง

impl UnwindSafe for __m256h

ยง

impl UnwindSafe for __m256i

ยง

impl UnwindSafe for __m512bh

ยง

impl UnwindSafe for __m512d

ยง

impl UnwindSafe for __m512h

ยง

impl UnwindSafe for __m512i

ยง

impl UnwindSafe for __tile1024i

ยง

impl UnwindSafe for bf16

ยง

impl UnwindSafe for bool

ยง

impl UnwindSafe for c_void

ยง

impl UnwindSafe for char

ยง

impl UnwindSafe for f16

ยง

impl UnwindSafe for f32

ยง

impl UnwindSafe for f64

ยง

impl UnwindSafe for f16x2

ยง

impl UnwindSafe for f128

ยง

impl UnwindSafe for float16x4_t

ยง

impl UnwindSafe for float16x4x2_t

ยง

impl UnwindSafe for float16x4x3_t

ยง

impl UnwindSafe for float16x4x4_t

ยง

impl UnwindSafe for float16x8_t

ยง

impl UnwindSafe for float16x8x2_t

ยง

impl UnwindSafe for float16x8x3_t

ยง

impl UnwindSafe for float16x8x4_t

ยง

impl UnwindSafe for float32x2_t

ยง

impl UnwindSafe for float32x2x2_t

ยง

impl UnwindSafe for float32x2x3_t

ยง

impl UnwindSafe for float32x2x4_t

ยง

impl UnwindSafe for float32x4_t

ยง

impl UnwindSafe for float32x4x2_t

ยง

impl UnwindSafe for float32x4x3_t

ยง

impl UnwindSafe for float32x4x4_t

ยง

impl UnwindSafe for float64x1_t

ยง

impl UnwindSafe for float64x1x2_t

ยง

impl UnwindSafe for float64x1x3_t

ยง

impl UnwindSafe for float64x1x4_t

ยง

impl UnwindSafe for float64x2_t

ยง

impl UnwindSafe for float64x2x2_t

ยง

impl UnwindSafe for float64x2x3_t

ยง

impl UnwindSafe for float64x2x4_t

ยง

impl UnwindSafe for i8

ยง

impl UnwindSafe for i16

ยง

impl UnwindSafe for i32

ยง

impl UnwindSafe for i64

ยง

impl UnwindSafe for i128

ยง

impl UnwindSafe for int8x8_t

ยง

impl UnwindSafe for int8x8x2_t

ยง

impl UnwindSafe for int8x8x3_t

ยง

impl UnwindSafe for int8x8x4_t

ยง

impl UnwindSafe for int8x16_t

ยง

impl UnwindSafe for int8x16x2_t

ยง

impl UnwindSafe for int8x16x3_t

ยง

impl UnwindSafe for int8x16x4_t

ยง

impl UnwindSafe for int16x4_t

ยง

impl UnwindSafe for int16x4x2_t

ยง

impl UnwindSafe for int16x4x3_t

ยง

impl UnwindSafe for int16x4x4_t

ยง

impl UnwindSafe for int16x8_t

ยง

impl UnwindSafe for int16x8x2_t

ยง

impl UnwindSafe for int16x8x3_t

ยง

impl UnwindSafe for int16x8x4_t

ยง

impl UnwindSafe for int32x2_t

ยง

impl UnwindSafe for int32x2x2_t

ยง

impl UnwindSafe for int32x2x3_t

ยง

impl UnwindSafe for int32x2x4_t

ยง

impl UnwindSafe for int32x4_t

ยง

impl UnwindSafe for int32x4x2_t

ยง

impl UnwindSafe for int32x4x3_t

ยง

impl UnwindSafe for int32x4x4_t

ยง

impl UnwindSafe for int64x1_t

ยง

impl UnwindSafe for int64x1x2_t

ยง

impl UnwindSafe for int64x1x3_t

ยง

impl UnwindSafe for int64x1x4_t

ยง

impl UnwindSafe for int64x2_t

ยง

impl UnwindSafe for int64x2x2_t

ยง

impl UnwindSafe for int64x2x3_t

ยง

impl UnwindSafe for int64x2x4_t

ยง

impl UnwindSafe for isize

ยง

impl UnwindSafe for m128

ยง

impl UnwindSafe for m256

ยง

impl UnwindSafe for m128d

ยง

impl UnwindSafe for m128i

ยง

impl UnwindSafe for m256d

ยง

impl UnwindSafe for m256i

ยง

impl UnwindSafe for objc_class

ยง

impl UnwindSafe for objc_selector

ยง

impl UnwindSafe for poly8x8_t

ยง

impl UnwindSafe for poly8x8x2_t

ยง

impl UnwindSafe for poly8x8x3_t

ยง

impl UnwindSafe for poly8x8x4_t

ยง

impl UnwindSafe for poly8x16_t

ยง

impl UnwindSafe for poly8x16x2_t

ยง

impl UnwindSafe for poly8x16x3_t

ยง

impl UnwindSafe for poly8x16x4_t

ยง

impl UnwindSafe for poly16x4_t

ยง

impl UnwindSafe for poly16x4x2_t

ยง

impl UnwindSafe for poly16x4x3_t

ยง

impl UnwindSafe for poly16x4x4_t

ยง

impl UnwindSafe for poly16x8_t

ยง

impl UnwindSafe for poly16x8x2_t

ยง

impl UnwindSafe for poly16x8x3_t

ยง

impl UnwindSafe for poly16x8x4_t

ยง

impl UnwindSafe for poly64x1_t

ยง

impl UnwindSafe for poly64x1x2_t

ยง

impl UnwindSafe for poly64x1x3_t

ยง

impl UnwindSafe for poly64x1x4_t

ยง

impl UnwindSafe for poly64x2_t

ยง

impl UnwindSafe for poly64x2x2_t

ยง

impl UnwindSafe for poly64x2x3_t

ยง

impl UnwindSafe for poly64x2x4_t

ยง

impl UnwindSafe for str

ยง

impl UnwindSafe for svbool_t

ยง

impl UnwindSafe for svfloat32_t

ยง

impl UnwindSafe for svfloat32x2_t

ยง

impl UnwindSafe for svfloat32x3_t

ยง

impl UnwindSafe for svfloat32x4_t

ยง

impl UnwindSafe for svfloat64_t

ยง

impl UnwindSafe for svfloat64x2_t

ยง

impl UnwindSafe for svfloat64x3_t

ยง

impl UnwindSafe for svfloat64x4_t

ยง

impl UnwindSafe for svint8_t

ยง

impl UnwindSafe for svint8x2_t

ยง

impl UnwindSafe for svint8x3_t

ยง

impl UnwindSafe for svint8x4_t

ยง

impl UnwindSafe for svint16_t

ยง

impl UnwindSafe for svint16x2_t

ยง

impl UnwindSafe for svint16x3_t

ยง

impl UnwindSafe for svint16x4_t

ยง

impl UnwindSafe for svint32_t

ยง

impl UnwindSafe for svint32x2_t

ยง

impl UnwindSafe for svint32x3_t

ยง

impl UnwindSafe for svint32x4_t

ยง

impl UnwindSafe for svint64_t

ยง

impl UnwindSafe for svint64x2_t

ยง

impl UnwindSafe for svint64x3_t

ยง

impl UnwindSafe for svint64x4_t

ยง

impl UnwindSafe for svpattern

ยง

impl UnwindSafe for svprfop

ยง

impl UnwindSafe for svuint8_t

ยง

impl UnwindSafe for svuint8x2_t

ยง

impl UnwindSafe for svuint8x3_t

ยง

impl UnwindSafe for svuint8x4_t

ยง

impl UnwindSafe for svuint16_t

ยง

impl UnwindSafe for svuint16x2_t

ยง

impl UnwindSafe for svuint16x3_t

ยง

impl UnwindSafe for svuint16x4_t

ยง

impl UnwindSafe for svuint32_t

ยง

impl UnwindSafe for svuint32x2_t

ยง

impl UnwindSafe for svuint32x3_t

ยง

impl UnwindSafe for svuint32x4_t

ยง

impl UnwindSafe for svuint64_t

ยง

impl UnwindSafe for svuint64x2_t

ยง

impl UnwindSafe for svuint64x3_t

ยง

impl UnwindSafe for svuint64x4_t

ยง

impl UnwindSafe for u8

ยง

impl UnwindSafe for u16

ยง

impl UnwindSafe for u32

ยง

impl UnwindSafe for u64

ยง

impl UnwindSafe for u128

ยง

impl UnwindSafe for uint8x8_t

ยง

impl UnwindSafe for uint8x8x2_t

ยง

impl UnwindSafe for uint8x8x3_t

ยง

impl UnwindSafe for uint8x8x4_t

ยง

impl UnwindSafe for uint8x16_t

ยง

impl UnwindSafe for uint8x16x2_t

ยง

impl UnwindSafe for uint8x16x3_t

ยง

impl UnwindSafe for uint8x16x4_t

ยง

impl UnwindSafe for uint16x4_t

ยง

impl UnwindSafe for uint16x4x2_t

ยง

impl UnwindSafe for uint16x4x3_t

ยง

impl UnwindSafe for uint16x4x4_t

ยง

impl UnwindSafe for uint16x8_t

ยง

impl UnwindSafe for uint16x8x2_t

ยง

impl UnwindSafe for uint16x8x3_t

ยง

impl UnwindSafe for uint16x8x4_t

ยง

impl UnwindSafe for uint32x2_t

ยง

impl UnwindSafe for uint32x2x2_t

ยง

impl UnwindSafe for uint32x2x3_t

ยง

impl UnwindSafe for uint32x2x4_t

ยง

impl UnwindSafe for uint32x4_t

ยง

impl UnwindSafe for uint32x4x2_t

ยง

impl UnwindSafe for uint32x4x3_t

ยง

impl UnwindSafe for uint32x4x4_t

ยง

impl UnwindSafe for uint64x1_t

ยง

impl UnwindSafe for uint64x1x2_t

ยง

impl UnwindSafe for uint64x1x3_t

ยง

impl UnwindSafe for uint64x1x4_t

ยง

impl UnwindSafe for uint64x2_t

ยง

impl UnwindSafe for uint64x2x2_t

ยง

impl UnwindSafe for uint64x2x3_t

ยง

impl UnwindSafe for uint64x2x4_t

ยง

impl UnwindSafe for usize

ยง

impl UnwindSafe for v128

ยง

impl UnwindSafe for core::arch::powerpc::vector_bool_char

ยง

impl UnwindSafe for core::arch::s390x::vector_bool_char

ยง

impl UnwindSafe for core::arch::powerpc::vector_bool_int

ยง

impl UnwindSafe for core::arch::s390x::vector_bool_int

ยง

impl UnwindSafe for vector_bool_long

ยง

impl UnwindSafe for vector_bool_long_long

ยง

impl UnwindSafe for core::arch::powerpc::vector_bool_short

ยง

impl UnwindSafe for core::arch::s390x::vector_bool_short

ยง

impl UnwindSafe for core::arch::powerpc::vector_double

ยง

impl UnwindSafe for core::arch::s390x::vector_double

ยง

impl UnwindSafe for core::arch::powerpc::vector_float

ยง

impl UnwindSafe for core::arch::s390x::vector_float

ยง

impl UnwindSafe for core::arch::powerpc::vector_signed_char

ยง

impl UnwindSafe for core::arch::s390x::vector_signed_char

ยง

impl UnwindSafe for core::arch::powerpc::vector_signed_int

ยง

impl UnwindSafe for core::arch::s390x::vector_signed_int

ยง

impl UnwindSafe for vector_signed_long

ยง

impl UnwindSafe for vector_signed_long_long

ยง

impl UnwindSafe for core::arch::powerpc::vector_signed_short

ยง

impl UnwindSafe for core::arch::s390x::vector_signed_short

ยง

impl UnwindSafe for core::arch::powerpc::vector_unsigned_char

ยง

impl UnwindSafe for core::arch::s390x::vector_unsigned_char

ยง

impl UnwindSafe for core::arch::powerpc::vector_unsigned_int

ยง

impl UnwindSafe for core::arch::s390x::vector_unsigned_int

ยง

impl UnwindSafe for vector_unsigned_long

ยง

impl UnwindSafe for vector_unsigned_long_long

ยง

impl UnwindSafe for core::arch::powerpc::vector_unsigned_short

ยง

impl UnwindSafe for core::arch::s390x::vector_unsigned_short

ยง

impl<'a, 'b, const N: usize> UnwindSafe for CharArrayRefSearcher<'a, 'b, N>

ยง

impl<'a, 'b> !UnwindSafe for DebugList<'a, 'b>

ยง

impl<'a, 'b> !UnwindSafe for DebugMap<'a, 'b>

ยง

impl<'a, 'b> !UnwindSafe for DebugSet<'a, 'b>

ยง

impl<'a, 'b> !UnwindSafe for DebugStruct<'a, 'b>

ยง

impl<'a, 'b> !UnwindSafe for DebugTuple<'a, 'b>

ยง

impl<'a, 'b> UnwindSafe for CharSliceSearcher<'a, 'b>

ยง

impl<'a, 'b> UnwindSafe for StrSearcher<'a, 'b>

ยง

impl<'a, A> !UnwindSafe for core::option::IterMut<'a, A>

ยง

impl<'a, A> UnwindSafe for core::option::Iter<'a, A>
where A: RefUnwindSafe,

ยง

impl<'a, F> UnwindSafe for CharPredicateSearcher<'a, F>
where F: UnwindSafe,

ยง

impl<'a, I> !UnwindSafe for ByRefSized<'a, I>

ยง

impl<'a, P> UnwindSafe for MatchIndices<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, P> UnwindSafe for Matches<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, P> UnwindSafe for RMatchIndices<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, P> UnwindSafe for RMatches<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, P> UnwindSafe for core::str::RSplit<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, P> UnwindSafe for core::str::RSplitN<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, P> UnwindSafe for RSplitTerminator<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, P> UnwindSafe for core::str::Split<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, P> UnwindSafe for core::str::SplitInclusive<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, P> UnwindSafe for core::str::SplitN<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, P> UnwindSafe for SplitTerminator<'a, P>
where <P as Pattern>::Searcher<'a>: UnwindSafe,

ยง

impl<'a, T, P> !UnwindSafe for ChunkByMut<'a, T, P>

ยง

impl<'a, T, P> !UnwindSafe for RSplitMut<'a, T, P>

ยง

impl<'a, T, P> !UnwindSafe for RSplitNMut<'a, T, P>

ยง

impl<'a, T, P> !UnwindSafe for SplitInclusiveMut<'a, T, P>

ยง

impl<'a, T, P> !UnwindSafe for SplitMut<'a, T, P>

ยง

impl<'a, T, P> !UnwindSafe for SplitNMut<'a, T, P>

ยง

impl<'a, T, P> UnwindSafe for ChunkBy<'a, T, P>

ยง

impl<'a, T, P> UnwindSafe for core::slice::RSplit<'a, T, P>

ยง

impl<'a, T, P> UnwindSafe for core::slice::RSplitN<'a, T, P>

ยง

impl<'a, T, P> UnwindSafe for core::slice::Split<'a, T, P>

ยง

impl<'a, T, P> UnwindSafe for core::slice::SplitInclusive<'a, T, P>

ยง

impl<'a, T, P> UnwindSafe for core::slice::SplitN<'a, T, P>

ยง

impl<'a, T, const N: usize> UnwindSafe for ArrayWindows<'a, T, N>
where T: RefUnwindSafe,

ยง

impl<'a, T> !UnwindSafe for BorrowedCursor<'a, T>

ยง

impl<'a, T> !UnwindSafe for ChunksExactMut<'a, T>

ยง

impl<'a, T> !UnwindSafe for ChunksMut<'a, T>

ยง

impl<'a, T> !UnwindSafe for core::result::IterMut<'a, T>

ยง

impl<'a, T> !UnwindSafe for core::slice::IterMut<'a, T>

ยง

impl<'a, T> !UnwindSafe for RChunksExactMut<'a, T>

ยง

impl<'a, T> !UnwindSafe for RChunksMut<'a, T>

ยง

impl<'a, T> UnwindSafe for Chunks<'a, T>
where T: RefUnwindSafe,

ยง

impl<'a, T> UnwindSafe for ChunksExact<'a, T>
where T: RefUnwindSafe,

ยง

impl<'a, T> UnwindSafe for core::result::Iter<'a, T>
where T: RefUnwindSafe,

ยง

impl<'a, T> UnwindSafe for core::slice::Iter<'a, T>
where T: RefUnwindSafe,

ยง

impl<'a, T> UnwindSafe for RChunks<'a, T>
where T: RefUnwindSafe,

ยง

impl<'a, T> UnwindSafe for RChunksExact<'a, T>
where T: RefUnwindSafe,

ยง

impl<'a, T> UnwindSafe for Windows<'a, T>
where T: RefUnwindSafe,

ยง

impl<'a, const N: usize> UnwindSafe for CharArraySearcher<'a, N>

ยง

impl<'a> !UnwindSafe for ContextBuilder<'a>

ยง

impl<'a> !UnwindSafe for Formatter<'a>

ยง

impl<'a> !UnwindSafe for IoSliceMut<'a>

ยง

impl<'a> !UnwindSafe for Request<'a>

ยง

impl<'a> !UnwindSafe for Source<'a>

ยง

impl<'a> UnwindSafe for Arguments<'a>

ยง

impl<'a> UnwindSafe for core::ffi::c_str::Bytes<'a>

ยง

impl<'a> UnwindSafe for core::str::Bytes<'a>

ยง

impl<'a> UnwindSafe for CharIndices<'a>

ยง

impl<'a> UnwindSafe for CharSearcher<'a>

ยง

impl<'a> UnwindSafe for Chars<'a>

ยง

impl<'a> UnwindSafe for Context<'a>

ยง

impl<'a> UnwindSafe for EncodeUtf16<'a>

ยง

impl<'a> UnwindSafe for EscapeAscii<'a>

ยง

impl<'a> UnwindSafe for core::str::EscapeDebug<'a>

ยง

impl<'a> UnwindSafe for core::str::EscapeDefault<'a>

ยง

impl<'a> UnwindSafe for core::str::EscapeUnicode<'a>

ยง

impl<'a> UnwindSafe for IoSlice<'a>

ยง

impl<'a> UnwindSafe for Lines<'a>

ยง

impl<'a> UnwindSafe for LinesAny<'a>

ยง

impl<'a> UnwindSafe for Location<'a>

ยง

impl<'a> UnwindSafe for PanicInfo<'a>

ยง

impl<'a> UnwindSafe for PanicMessage<'a>

ยง

impl<'a> UnwindSafe for PhantomContravariantLifetime<'a>

ยง

impl<'a> UnwindSafe for PhantomCovariantLifetime<'a>

ยง

impl<'a> UnwindSafe for PhantomInvariantLifetime<'a>

ยง

impl<'a> UnwindSafe for SplitAsciiWhitespace<'a>

ยง

impl<'a> UnwindSafe for SplitWhitespace<'a>

ยง

impl<'a> UnwindSafe for Utf8Chunk<'a>

ยง

impl<'a> UnwindSafe for Utf8Chunks<'a>

ยง

impl<'a> UnwindSafe for Utf8Pattern<'a>

ยง

impl<'a> UnwindSafe for VaList<'a>

ยง

impl<'b, T> !UnwindSafe for Ref<'b, T>

ยง

impl<'b, T> !UnwindSafe for RefMut<'b, T>

ยง

impl<'data, T> !UnwindSafe for BorrowedBuf<'data, T>

ยง

impl<A, B> UnwindSafe for core::iter::Chain<A, B>
where A: UnwindSafe, B: UnwindSafe,

ยง

impl<A, B> UnwindSafe for Zip<A, B>
where A: UnwindSafe, B: UnwindSafe,

ยง

impl<A> UnwindSafe for core::option::IntoIter<A>
where A: UnwindSafe,

ยง

impl<A> UnwindSafe for OptionFlatten<A>
where A: UnwindSafe,

ยง

impl<A> UnwindSafe for RangeFromIter<A>
where A: UnwindSafe,

ยง

impl<A> UnwindSafe for RangeInclusiveIter<A>
where A: UnwindSafe,

ยง

impl<A> UnwindSafe for RangeIter<A>
where A: UnwindSafe,

ยง

impl<A> UnwindSafe for core::iter::Repeat<A>
where A: UnwindSafe,

ยง

impl<A> UnwindSafe for RepeatN<A>
where A: UnwindSafe,

ยง

impl<B, C> UnwindSafe for ControlFlow<B, C>
where C: UnwindSafe, B: UnwindSafe,

ยง

impl<Dyn> !UnwindSafe for DynMetadata<Dyn>

ยง

impl<F> UnwindSafe for core::iter::FromFn<F>
where F: UnwindSafe,

ยง

impl<F> UnwindSafe for core::fmt::FromFn<F>
where F: UnwindSafe,

ยง

impl<F> UnwindSafe for OnceWith<F>
where F: UnwindSafe,

ยง

impl<F> UnwindSafe for PollFn<F>
where F: UnwindSafe,

ยง

impl<F> UnwindSafe for RepeatWith<F>
where F: UnwindSafe,

ยง

impl<G> UnwindSafe for FromCoroutine<G>
where G: UnwindSafe,

ยง

impl<H> UnwindSafe for BuildHasherDefault<H>

ยง

impl<I, F, const N: usize> UnwindSafe for MapWindows<I, F, N>
where F: UnwindSafe, I: UnwindSafe, <I as Iterator>::Item: UnwindSafe,

ยง

impl<I, F> UnwindSafe for FilterMap<I, F>
where I: UnwindSafe, F: UnwindSafe,

ยง

impl<I, F> UnwindSafe for Inspect<I, F>
where I: UnwindSafe, F: UnwindSafe,

ยง

impl<I, F> UnwindSafe for Map<I, F>
where I: UnwindSafe, F: UnwindSafe,

ยง

impl<I, G> UnwindSafe for IntersperseWith<I, G>
where G: UnwindSafe, I: UnwindSafe, <I as Iterator>::Item: UnwindSafe,

ยง

impl<I, P> UnwindSafe for Filter<I, P>
where I: UnwindSafe, P: UnwindSafe,

ยง

impl<I, P> UnwindSafe for MapWhile<I, P>
where I: UnwindSafe, P: UnwindSafe,

ยง

impl<I, P> UnwindSafe for SkipWhile<I, P>
where I: UnwindSafe, P: UnwindSafe,

ยง

impl<I, P> UnwindSafe for TakeWhile<I, P>
where I: UnwindSafe, P: UnwindSafe,

ยง

impl<I, St, F> UnwindSafe for Scan<I, St, F>
where I: UnwindSafe, F: UnwindSafe, St: UnwindSafe,

ยง

impl<I, U, F> UnwindSafe for FlatMap<I, U, F>

ยง

impl<I, const N: usize> UnwindSafe for ArrayChunks<I, N>
where I: UnwindSafe, <I as Iterator>::Item: UnwindSafe,

ยง

impl<I> UnwindSafe for Cloned<I>
where I: UnwindSafe,

ยง

impl<I> UnwindSafe for Copied<I>
where I: UnwindSafe,

ยง

impl<I> UnwindSafe for Cycle<I>
where I: UnwindSafe,

ยง

impl<I> UnwindSafe for DecodeUtf16<I>
where I: UnwindSafe,

ยง

impl<I> UnwindSafe for Enumerate<I>
where I: UnwindSafe,

ยง

impl<I> UnwindSafe for Flatten<I>

ยง

impl<I> UnwindSafe for FromIter<I>
where I: UnwindSafe,

ยง

impl<I> UnwindSafe for Fuse<I>
where I: UnwindSafe,

ยง

impl<I> UnwindSafe for Intersperse<I>
where <I as Iterator>::Item: Sized + UnwindSafe, I: UnwindSafe,

ยง

impl<I> UnwindSafe for Peekable<I>
where I: UnwindSafe, <I as Iterator>::Item: UnwindSafe,

ยง

impl<I> UnwindSafe for Skip<I>
where I: UnwindSafe,

ยง

impl<I> UnwindSafe for StepBy<I>
where I: UnwindSafe,

ยง

impl<I> UnwindSafe for core::iter::Take<I>
where I: UnwindSafe,

ยง

impl<Idx> UnwindSafe for Clamp<Idx>
where Idx: UnwindSafe,

ยง

impl<Idx> UnwindSafe for core::ops::Range<Idx>
where Idx: UnwindSafe,

ยง

impl<Idx> UnwindSafe for core::range::Range<Idx>
where Idx: UnwindSafe,

ยง

impl<Idx> UnwindSafe for core::ops::RangeFrom<Idx>
where Idx: UnwindSafe,

ยง

impl<Idx> UnwindSafe for core::range::RangeFrom<Idx>
where Idx: UnwindSafe,

ยง

impl<Idx> UnwindSafe for core::ops::RangeInclusive<Idx>
where Idx: UnwindSafe,

ยง

impl<Idx> UnwindSafe for core::range::RangeInclusive<Idx>
where Idx: UnwindSafe,

ยง

impl<Idx> UnwindSafe for RangeTo<Idx>
where Idx: UnwindSafe,

ยง

impl<Idx> UnwindSafe for core::ops::RangeToInclusive<Idx>
where Idx: UnwindSafe,

ยง

impl<Idx> UnwindSafe for core::range::RangeToInclusive<Idx>
where Idx: UnwindSafe,

ยง

impl<P> UnwindSafe for MaybeDangling<P>
where P: UnwindSafe + ?Sized,

ยง

impl<Ptr> UnwindSafe for Pin<Ptr>
where Ptr: UnwindSafe,

ยง

impl<Ret, T> UnwindSafe for fn(Tโ‚, Tโ‚‚, โ€ฆ, Tโ‚™) -> Ret

ยง

impl<T, E> UnwindSafe for Result<T, E>
where T: UnwindSafe, E: UnwindSafe,

ยง

impl<T, F> UnwindSafe for DropGuard<T, F>
where T: UnwindSafe, F: UnwindSafe,

ยง

impl<T, F> UnwindSafe for LazyCell<T, F>
where F: UnwindSafe, T: UnwindSafe,

ยง

impl<T, F> UnwindSafe for Successors<T, F>
where F: UnwindSafe, T: UnwindSafe,

ยง

impl<T, U> UnwindSafe for core::io::Chain<T, U>
where T: UnwindSafe, U: UnwindSafe,

ยง

impl<T, const N: usize> UnwindSafe for core::array::IntoIter<T, N>
where T: UnwindSafe,

ยง

impl<T, const N: usize> UnwindSafe for Mask<T, N>
where T: UnwindSafe,

ยง

impl<T, const N: usize> UnwindSafe for Simd<T, N>
where T: UnwindSafe,

ยง

impl<T, const N: usize> UnwindSafe for [MaybeUninit<T>; N]
where T: UnwindSafe,

ยง

impl<T, const N: usize> UnwindSafe for [Option<T>; N]
where T: UnwindSafe,

ยง

impl<T, const N: usize> UnwindSafe for [T; N]
where T: UnwindSafe,

ยง

impl<T, const VARIANT: u32, const FIELD: u32> UnwindSafe for FieldRepresentingType<T, VARIANT, FIELD>
where T: ?Sized,

ยง

impl<T> !UnwindSafe for TraitImpl<T>

ยง

impl<T> UnwindSafe for (Tโ‚, Tโ‚‚, โ€ฆ, Tโ‚™)
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for Atomic<T>

ยง

impl<T> UnwindSafe for Bound<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for Cell<T>
where T: UnwindSafe + ?Sized,

ยง

impl<T> UnwindSafe for Cursor<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for Discriminant<T>

ยง

impl<T> UnwindSafe for core::iter::Empty<T>

ยง

impl<T> UnwindSafe for core::result::IntoIter<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for ManuallyDrop<T>
where T: UnwindSafe + ?Sized,

ยง

impl<T> UnwindSafe for MaybeUninit<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for NumBuffer<T>

ยง

impl<T> UnwindSafe for Once<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for OnceCell<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for Option<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for Pending<T>

ยง

impl<T> UnwindSafe for PhantomContravariant<T>
where T: ?Sized,

ยง

impl<T> UnwindSafe for PhantomCovariant<T>
where T: ?Sized,

ยง

impl<T> UnwindSafe for PhantomData<T>
where T: UnwindSafe + ?Sized,

ยง

impl<T> UnwindSafe for PhantomInvariant<T>
where T: ?Sized,

ยง

impl<T> UnwindSafe for Poll<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for Ready<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for RefCell<T>
where T: UnwindSafe + ?Sized,

ยง

impl<T> UnwindSafe for Rev<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for Reverse<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for Saturating<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for SyncUnsafeCell<T>
where T: UnwindSafe + ?Sized,

ยง

impl<T> UnwindSafe for SyncView<T>
where T: UnwindSafe + ?Sized,

ยง

impl<T> UnwindSafe for core::io::Take<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for UnsafeCell<T>
where T: UnwindSafe + ?Sized,

ยง

impl<T> UnwindSafe for UnsafePinned<T>
where T: UnwindSafe + ?Sized,

ยง

impl<T> UnwindSafe for Wrapping<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for Yeet<T>
where T: UnwindSafe,

ยง

impl<T> UnwindSafe for [T]
where T: UnwindSafe,

ยง

impl<Y, R> UnwindSafe for CoroutineState<Y, R>
where Y: UnwindSafe, R: UnwindSafe,

ยง

impl<const N: usize> UnwindSafe for [u8; N]