1.9.0[][src]Trait af_lib::prelude::af_core::test::prelude::panic::UnwindSafe

pub auto trait UnwindSafe { }

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 turns 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.

Implementations on Foreign Types

impl UnwindSafe for BytesMut[src]

impl UnwindSafe for Argument[src]

impl UnwindSafe for FormatSpec[src]

impl UnwindSafe for Alignment[src]

impl UnwindSafe for Count[src]

impl<T, F> UnwindSafe for SyncLazy<T, F> where
    F: UnwindSafe,
    SyncOnceCell<T>: UnwindSafe
[src]

impl<T> UnwindSafe for RwLock<T> where
    T: ?Sized
[src]

impl<T> UnwindSafe for SyncOnceCell<T> where
    T: UnwindSafe
[src]

impl<K, V, S> UnwindSafe for HashMap<K, V, S> where
    V: UnwindSafe,
    S: UnwindSafe,
    K: UnwindSafe
[src]

impl<T> UnwindSafe for Mutex<T> where
    T: ?Sized
[src]

impl<T> UnwindSafe for *const T where
    T: RefUnwindSafe + ?Sized
[src]

impl<T> UnwindSafe for *mut T where
    T: RefUnwindSafe + ?Sized
[src]

impl<'_, T> UnwindSafe for &'_ T where
    T: RefUnwindSafe + ?Sized
[src]

impl<'_, T> !UnwindSafe for &'_ mut T where
    T: ?Sized
[src]

impl<T> UnwindSafe for ConcurrentQueue<T>

impl UnwindSafe for EventListener

impl UnwindSafe for Event

impl<T> UnwindSafe for ThreadLocal<T> where
    T: UnwindSafe + Send

impl<T> UnwindSafe for CachedThreadLocal<T> where
    T: UnwindSafe + Send

impl<'_> UnwindSafe for Executor<'_>

impl<'_> UnwindSafe for LocalExecutor<'_>

impl<T> UnwindSafe for Task<T>

impl UnwindSafe for Runnable

impl UnwindSafe for isize[src]

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

impl UnwindSafe for [u8][src]

impl UnwindSafe for char[src]

impl UnwindSafe for u128[src]

impl UnwindSafe for u16[src]

impl UnwindSafe for i128[src]

impl UnwindSafe for i16[src]

impl UnwindSafe for str[src]

impl UnwindSafe for f64[src]

impl UnwindSafe for u64[src]

impl UnwindSafe for u8[src]

impl UnwindSafe for i64[src]

impl UnwindSafe for i8[src]

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

impl UnwindSafe for bool[src]

impl UnwindSafe for f32[src]

impl UnwindSafe for u32[src]

impl UnwindSafe for usize[src]

impl UnwindSafe for i32[src]

Loading content...

Implementors

impl<T> UnwindSafe for af_lib::lazy::OnceCell<T> where
    T: UnwindSafe

impl<T> UnwindSafe for AssertUnwindSafe<T>[src]

impl<T> UnwindSafe for NonNull<T> where
    T: RefUnwindSafe + ?Sized
[src]

impl<T> UnwindSafe for Arc<T> where
    T: RefUnwindSafe + ?Sized
[src]

impl<T> UnwindSafe for Rc<T> where
    T: RefUnwindSafe + ?Sized
[src]

Loading content...

Auto implementors

impl !UnwindSafe for af_lib::prelude::af_core::test::runner::Error[src]

impl !UnwindSafe for af_lib::slack::api::Error[src]

impl !UnwindSafe for af_lib::slack::chat::Error[src]

impl !UnwindSafe for af_lib::postgres::Client[src]

impl !UnwindSafe for Row[src]

impl !UnwindSafe for RowStream[src]

impl !UnwindSafe for Statement[src]

impl !UnwindSafe for PanickedTask[src]

impl !UnwindSafe for af_lib::prelude::af_core::test::prelude::json::Error[src]

impl !UnwindSafe for af_lib::prelude::af_core::test::Context[src]

impl !UnwindSafe for Panic[src]

impl !UnwindSafe for ClientOptions[src]

impl !UnwindSafe for af_lib::slack::Client[src]

impl UnwindSafe for SendErrorReason[src]

impl UnwindSafe for VarError[src]

impl UnwindSafe for WorkingPathError[src]

impl UnwindSafe for af_lib::fmt::Alignment[src]

impl UnwindSafe for Level[src]

impl UnwindSafe for af_lib::postgres::Error[src]

impl UnwindSafe for IsNull[src]

impl UnwindSafe for Kind[src]

impl UnwindSafe for Ordering[src]

impl UnwindSafe for Value[src]

impl UnwindSafe for Category[src]

impl UnwindSafe for CharEscape[src]

impl UnwindSafe for SearchStep[src]

impl UnwindSafe for Zone[src]

impl UnwindSafe for Infallible[src]

impl UnwindSafe for ClosedError[src]

impl UnwindSafe for af_lib::fail::Error[src]

impl UnwindSafe for af_lib::fmt::Error[src]

impl UnwindSafe for Config[src]

impl UnwindSafe for Type[src]

impl UnwindSafe for Field[src]

impl UnwindSafe for WasNull[src]

impl UnwindSafe for WrongType[src]

impl UnwindSafe for Rng[src]

impl UnwindSafe for SharedString[src]

impl UnwindSafe for CancelSignal[src]

impl UnwindSafe for Canceled[src]

impl UnwindSafe for Canceler[src]

impl UnwindSafe for BorrowError[src]

impl UnwindSafe for BorrowMutError[src]

impl UnwindSafe for CharTryFromError[src]

impl UnwindSafe for DecodeUtf16Error[src]

impl UnwindSafe for af_lib::prelude::af_core::test::prelude::char::EscapeDebug[src]

impl UnwindSafe for af_lib::prelude::af_core::test::prelude::char::EscapeDefault[src]

impl UnwindSafe for af_lib::prelude::af_core::test::prelude::char::EscapeUnicode[src]

impl UnwindSafe for ParseCharError[src]

impl UnwindSafe for ToLowercase[src]

impl UnwindSafe for ToUppercase[src]

impl UnwindSafe for SipHasher[src]

impl UnwindSafe for IntoIter[src]

impl UnwindSafe for CompactFormatter[src]

impl UnwindSafe for Number[src]

impl UnwindSafe for af_lib::prelude::af_core::test::prelude::json::value::Serializer[src]

impl UnwindSafe for ParseBoolError[src]

impl UnwindSafe for Utf8Error[src]

impl UnwindSafe for Span[src]

impl UnwindSafe for af_lib::prelude::af_core::test::runner::Output[src]

impl UnwindSafe for af_lib::prelude::af_core::test::Output[src]

impl UnwindSafe for OutputStream[src]

impl UnwindSafe for Path[src]

impl UnwindSafe for af_lib::prelude::Date[src]

impl UnwindSafe for Duration[src]

impl UnwindSafe for RangeFull[src]

impl UnwindSafe for Time[src]

impl UnwindSafe for Uuid[src]

impl UnwindSafe for ClientInitGuard[src]

impl UnwindSafe for af_lib::sentry::Error[src]

impl UnwindSafe for User[src]

impl UnwindSafe for ErrorResponse[src]

impl UnwindSafe for MessageId[src]

impl<'a> !UnwindSafe for Entry<'a>[src]

impl<'a> !UnwindSafe for Arguments<'a>[src]

impl<'a> !UnwindSafe for Formatter<'a>[src]

impl<'a> !UnwindSafe for StatementBuilder<'a>[src]

impl<'a> !UnwindSafe for af_lib::prelude::af_core::test::prelude::json::map::IterMut<'a>[src]

impl<'a> !UnwindSafe for OccupiedEntry<'a>[src]

impl<'a> !UnwindSafe for VacantEntry<'a>[src]

impl<'a> !UnwindSafe for ValuesMut<'a>[src]

impl<'a> !UnwindSafe for PanicInfo<'a>[src]

impl<'a> UnwindSafe for Block<'a>[src]

impl<'a> UnwindSafe for af_lib::future::Context<'a>[src]

impl<'a> UnwindSafe for SliceRead<'a>[src]

impl<'a> UnwindSafe for StrRead<'a>[src]

impl<'a> UnwindSafe for af_lib::prelude::af_core::test::prelude::json::map::Iter<'a>[src]

impl<'a> UnwindSafe for Keys<'a>[src]

impl<'a> UnwindSafe for Values<'a>[src]

impl<'a> UnwindSafe for PrettyFormatter<'a>[src]

impl<'a> UnwindSafe for Location<'a>[src]

impl<'a> UnwindSafe for CharSearcher<'a>[src]

impl<'a> UnwindSafe for Bytes<'a>[src]

impl<'a> UnwindSafe for CharIndices<'a>[src]

impl<'a> UnwindSafe for Chars<'a>[src]

impl<'a> UnwindSafe for EncodeUtf16<'a>[src]

impl<'a> UnwindSafe for af_lib::prelude::af_core::test::prelude::str::EscapeDebug<'a>[src]

impl<'a> UnwindSafe for af_lib::prelude::af_core::test::prelude::str::EscapeDefault<'a>[src]

impl<'a> UnwindSafe for af_lib::prelude::af_core::test::prelude::str::EscapeUnicode<'a>[src]

impl<'a> UnwindSafe for Lines<'a>[src]

impl<'a> UnwindSafe for LinesAny<'a>[src]

impl<'a> UnwindSafe for SplitAsciiWhitespace<'a>[src]

impl<'a> UnwindSafe for SplitWhitespace<'a>[src]

impl<'a> UnwindSafe for Text<'a>[src]

impl<'a> UnwindSafe for Attachment<'a>[src]

impl<'a> UnwindSafe for Message<'a>[src]

impl<'a, 'b> !UnwindSafe for DebugList<'a, 'b>[src]

impl<'a, 'b> !UnwindSafe for DebugMap<'a, 'b>[src]

impl<'a, 'b> !UnwindSafe for DebugSet<'a, 'b>[src]

impl<'a, 'b> !UnwindSafe for DebugStruct<'a, 'b>[src]

impl<'a, 'b> !UnwindSafe for DebugTuple<'a, 'b>[src]

impl<'a, 'b> UnwindSafe for CharSliceSearcher<'a, 'b>[src]

impl<'a, 'b> UnwindSafe for StrSearcher<'a, 'b>[src]

impl<'a, B: ?Sized> UnwindSafe for Cow<'a, B> where
    B: RefUnwindSafe,
    <B as ToOwned>::Owned: UnwindSafe
[src]

impl<'a, F> UnwindSafe for IndentedFormatter<'a, F> where
    F: UnwindSafe
[src]

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

impl<'a, I> !UnwindSafe for Chunk<'a, I>[src]

impl<'a, I> !UnwindSafe for af_lib::iter::Chunks<'a, I>[src]

impl<'a, I> UnwindSafe for Format<'a, I> where
    I: UnwindSafe
[src]

impl<'a, I, E> !UnwindSafe for ProcessResults<'a, I, E>[src]

impl<'a, I, F> !UnwindSafe for PeekingTakeWhile<'a, I, F>[src]

impl<'a, I, F> !UnwindSafe for TakeWhileRef<'a, I, F>[src]

impl<'a, I, F> UnwindSafe for FormatWith<'a, I, F> where
    F: UnwindSafe,
    I: UnwindSafe
[src]

impl<'a, K, I, F> !UnwindSafe for Group<'a, K, I, F>[src]

impl<'a, K, I, F> !UnwindSafe for Groups<'a, K, I, F>[src]

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

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

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

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

impl<'a, P> UnwindSafe for af_lib::prelude::af_core::test::prelude::str::RSplit<'a, P> where
    <P as Pattern<'a>>::Searcher: UnwindSafe
[src]

impl<'a, P> UnwindSafe for af_lib::prelude::af_core::test::prelude::str::RSplitN<'a, P> where
    <P as Pattern<'a>>::Searcher: UnwindSafe
[src]

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

impl<'a, P> UnwindSafe for af_lib::prelude::af_core::test::prelude::str::Split<'a, P> where
    <P as Pattern<'a>>::Searcher: UnwindSafe
[src]

impl<'a, P> UnwindSafe for af_lib::prelude::af_core::test::prelude::str::SplitN<'a, P> where
    <P as Pattern<'a>>::Searcher: UnwindSafe
[src]

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

impl<'a, S> !UnwindSafe for NextFuture<'a, S>[src]

impl<'a, S> !UnwindSafe for NthFuture<'a, S>[src]

impl<'a, S> !UnwindSafe for TryNextFuture<'a, S>[src]

impl<'a, S, F> !UnwindSafe for FindMapFuture<'a, S, F>[src]

impl<'a, S, F> !UnwindSafe for TryForEachFuture<'a, S, F>[src]

impl<'a, S, F, B> !UnwindSafe for TryFoldFuture<'a, S, F, B>[src]

impl<'a, S, P> !UnwindSafe for AllFuture<'a, S, P>[src]

impl<'a, S, P> !UnwindSafe for AnyFuture<'a, S, P>[src]

impl<'a, S, P> !UnwindSafe for FindFuture<'a, S, P>[src]

impl<'a, S, P> !UnwindSafe for PositionFuture<'a, S, P>[src]

impl<'a, T> !UnwindSafe for ChunksExactMut<'a, T>[src]

impl<'a, T> !UnwindSafe for ChunksMut<'a, T>[src]

impl<'a, T> !UnwindSafe for af_lib::prelude::af_core::test::prelude::slice::IterMut<'a, T>[src]

impl<'a, T> !UnwindSafe for RChunksExactMut<'a, T>[src]

impl<'a, T> !UnwindSafe for RChunksMut<'a, T>[src]

impl<'a, T> UnwindSafe for Counted<'a, T> where
    T: UnwindSafe
[src]

impl<'a, T> UnwindSafe for Indented<'a, T> where
    T: UnwindSafe
[src]

impl<'a, T> UnwindSafe for Surrounded<'a, T> where
    T: UnwindSafe
[src]

impl<'a, T> UnwindSafe for af_lib::prelude::af_core::test::prelude::slice::Chunks<'a, T> where
    T: RefUnwindSafe
[src]

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

impl<'a, T> UnwindSafe for af_lib::prelude::af_core::test::prelude::slice::Iter<'a, T> where
    T: RefUnwindSafe
[src]

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

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

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

impl<'a, T, P> !UnwindSafe for GroupByMut<'a, T, P>[src]

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

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

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

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

impl<'a, T, P> UnwindSafe for af_lib::prelude::af_core::test::prelude::slice::GroupBy<'a, T, P> where
    P: UnwindSafe,
    T: RefUnwindSafe
[src]

impl<'a, T, P> UnwindSafe for af_lib::prelude::af_core::test::prelude::slice::RSplit<'a, T, P> where
    P: UnwindSafe,
    T: RefUnwindSafe
[src]

impl<'a, T, P> UnwindSafe for af_lib::prelude::af_core::test::prelude::slice::RSplitN<'a, T, P> where
    P: UnwindSafe,
    T: RefUnwindSafe
[src]

impl<'a, T, P> UnwindSafe for af_lib::prelude::af_core::test::prelude::slice::Split<'a, T, P> where
    P: UnwindSafe,
    T: RefUnwindSafe
[src]

impl<'a, T, P> UnwindSafe for af_lib::prelude::af_core::test::prelude::slice::SplitN<'a, T, P> where
    P: UnwindSafe,
    T: RefUnwindSafe
[src]

impl<'a, T, const N: usize> !UnwindSafe for ArrayChunksMut<'a, T, N>[src]

impl<'a, T, const N: usize> UnwindSafe for ArrayChunks<'a, T, N> where
    T: RefUnwindSafe
[src]

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

impl<'b, T> !UnwindSafe for Ref<'b, T>[src]

impl<'b, T> !UnwindSafe for RefMut<'b, T>[src]

impl<'de, R, T> UnwindSafe for StreamDeserializer<'de, R, T> where
    R: UnwindSafe,
    T: UnwindSafe
[src]

impl<A> UnwindSafe for af_lib::iter::Repeat<A> where
    A: UnwindSafe
[src]

impl<A> UnwindSafe for RepeatN<A> where
    A: UnwindSafe
[src]

impl<A, B> UnwindSafe for EitherOrBoth<A, B> where
    A: UnwindSafe,
    B: UnwindSafe
[src]

impl<A, B> UnwindSafe for af_lib::iter::__std_iter::Zip<A, B> where
    A: UnwindSafe,
    B: UnwindSafe
[src]

impl<A, B> UnwindSafe for af_lib::iter::Chain<A, B> where
    A: UnwindSafe,
    B: UnwindSafe
[src]

impl<A, B> UnwindSafe for af_lib::prelude::af_core::stream::Zip<A, B> where
    A: UnwindSafe,
    B: UnwindSafe,
    <A as Stream>::Item: UnwindSafe
[src]

impl<B, C> UnwindSafe for ControlFlow<B, C> where
    B: UnwindSafe,
    C: UnwindSafe
[src]

impl<E> UnwindSafe for FailedTask<E> where
    E: UnwindSafe
[src]

impl<F> UnwindSafe for FromFn<F> where
    F: UnwindSafe
[src]

impl<F> UnwindSafe for OnceWith<F> where
    F: UnwindSafe
[src]

impl<F> UnwindSafe for RepeatCall<F> where
    F: UnwindSafe
[src]

impl<F> UnwindSafe for af_lib::iter::RepeatWith<F> where
    F: UnwindSafe
[src]

impl<F> UnwindSafe for PollFn<F> where
    F: UnwindSafe
[src]

impl<F> UnwindSafe for af_lib::prelude::af_core::stream::RepeatWith<F> where
    F: UnwindSafe
[src]

impl<F> UnwindSafe for Deferred<F> where
    F: UnwindSafe
[src]

impl<F, M> UnwindSafe for MapErr<F, M> where
    F: UnwindSafe,
    M: UnwindSafe
[src]

impl<H> UnwindSafe for BuildHasherDefault<H> where
    H: UnwindSafe
[src]

impl<I> !UnwindSafe for RcIter<I>[src]

impl<I> !UnwindSafe for Tee<I>[src]

impl<I> UnwindSafe for Intersperse<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for af_lib::iter::Cloned<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for Combinations<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for CombinationsWithReplacement<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for af_lib::iter::Copied<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for af_lib::iter::Cycle<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for af_lib::iter::Enumerate<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for ExactlyOneError<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for af_lib::iter::Flatten<I> where
    I: UnwindSafe,
    <<I as Iterator>::Item as IntoIterator>::IntoIter: UnwindSafe
[src]

impl<I> UnwindSafe for af_lib::iter::Fuse<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for GroupingMap<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for IntoChunks<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: RefUnwindSafe + UnwindSafe
[src]

impl<I> UnwindSafe for MultiPeek<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for MultiProduct<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for PeekNth<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

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

impl<I> UnwindSafe for Permutations<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for Powerset<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for PutBack<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for PutBackN<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for af_lib::iter::Skip<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for af_lib::iter::StepBy<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for af_lib::iter::Take<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for Unique<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for WhileSome<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for WithPosition<I> where
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I> UnwindSafe for Step<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for af_lib::prelude::af_core::stream::Iter<I> where
    I: UnwindSafe
[src]

impl<I> UnwindSafe for DecodeUtf16<I> where
    I: UnwindSafe
[src]

impl<I, ElemF> UnwindSafe for af_lib::iter::structs::IntersperseWith<I, ElemF> where
    ElemF: UnwindSafe,
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I, F> UnwindSafe for Batching<I, F> where
    F: UnwindSafe,
    I: UnwindSafe
[src]

impl<I, F> UnwindSafe for af_lib::iter::FilterMap<I, F> where
    F: UnwindSafe,
    I: UnwindSafe
[src]

impl<I, F> UnwindSafe for FilterMapOk<I, F> where
    F: UnwindSafe,
    I: UnwindSafe
[src]

impl<I, F> UnwindSafe for FilterOk<I, F> where
    F: UnwindSafe,
    I: UnwindSafe
[src]

impl<I, F> UnwindSafe for af_lib::iter::Inspect<I, F> where
    F: UnwindSafe,
    I: UnwindSafe
[src]

impl<I, F> UnwindSafe for KMergeBy<I, F> where
    F: UnwindSafe,
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I, F> UnwindSafe for af_lib::iter::Map<I, F> where
    F: UnwindSafe,
    I: UnwindSafe
[src]

impl<I, F> UnwindSafe for PadUsing<I, F> where
    F: UnwindSafe,
    I: UnwindSafe
[src]

impl<I, F> UnwindSafe for Positions<I, F> where
    F: UnwindSafe,
    I: UnwindSafe
[src]

impl<I, F> UnwindSafe for Update<I, F> where
    F: UnwindSafe,
    I: UnwindSafe
[src]

impl<I, G> UnwindSafe for af_lib::iter::__std_iter::IntersperseWith<I, G> where
    G: UnwindSafe,
    I: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I, J> UnwindSafe for Diff<I, J> where
    I: UnwindSafe,
    J: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe,
    <J as Iterator>::Item: UnwindSafe
[src]

impl<I, J> UnwindSafe for ConsTuples<I, J> where
    I: UnwindSafe
[src]

impl<I, J> UnwindSafe for Interleave<I, J> where
    I: UnwindSafe,
    J: UnwindSafe
[src]

impl<I, J> UnwindSafe for InterleaveShortest<I, J> where
    I: UnwindSafe,
    J: UnwindSafe
[src]

impl<I, J> UnwindSafe for ZipEq<I, J> where
    I: UnwindSafe,
    J: UnwindSafe
[src]

impl<I, J> UnwindSafe for Product<I, J> where
    I: UnwindSafe,
    J: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I, J, F> UnwindSafe for MergeBy<I, J, F> where
    F: UnwindSafe,
    I: UnwindSafe,
    J: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe
[src]

impl<I, J, F> UnwindSafe for MergeJoinBy<I, J, F> where
    F: UnwindSafe,
    I: UnwindSafe,
    J: UnwindSafe,
    <I as Iterator>::Item: UnwindSafe,
    <J as Iterator>::Item: UnwindSafe
[src]

impl<I, P> UnwindSafe for af_lib::iter::Filter<I, P> where
    I: UnwindSafe,
    P: UnwindSafe
[src]

impl<I, P> UnwindSafe for MapWhile<I, P> where
    I: UnwindSafe,
    P: UnwindSafe
[src]

impl<I, P> UnwindSafe for af_lib::iter::SkipWhile<I, P> where
    I: UnwindSafe,
    P: UnwindSafe
[src]

impl<I, P> UnwindSafe for af_lib::iter::TakeWhile<I, P> where
    I: UnwindSafe,
    P: UnwindSafe
[src]

impl<I, St, F> UnwindSafe for af_lib::iter::Scan<I, St, F> where
    F: UnwindSafe,
    I: UnwindSafe,
    St: UnwindSafe
[src]

impl<I, T> UnwindSafe for CircularTupleWindows<I, T> where
    I: UnwindSafe,
    T: UnwindSafe
[src]

impl<I, T> UnwindSafe for TupleCombinations<I, T> where
    I: UnwindSafe,
    T: UnwindSafe,
    <T as HasCombination<I>>::Combination: UnwindSafe
[src]

impl<I, T> UnwindSafe for TupleWindows<I, T> where
    I: UnwindSafe,
    T: UnwindSafe
[src]

impl<I, T> UnwindSafe for Tuples<I, T> where
    I: UnwindSafe,
    <T as TupleCollect>::Buffer: UnwindSafe
[src]

impl<I, U, F> UnwindSafe for af_lib::iter::FlatMap<I, U, F> where
    F: UnwindSafe,
    I: UnwindSafe,
    <U as IntoIterator>::IntoIter: UnwindSafe
[src]

impl<I, V, F> UnwindSafe for UniqueBy<I, V, F> where
    F: UnwindSafe,
    I: UnwindSafe,
    V: UnwindSafe
[src]

impl<Idx> UnwindSafe for Range<Idx> where
    Idx: UnwindSafe
[src]

impl<Idx> UnwindSafe for RangeFrom<Idx> where
    Idx: UnwindSafe
[src]

impl<Idx> UnwindSafe for RangeInclusive<Idx> where
    Idx: UnwindSafe
[src]

impl<Idx> UnwindSafe for RangeTo<Idx> where
    Idx: UnwindSafe
[src]

impl<Idx> UnwindSafe for RangeToInclusive<Idx> where
    Idx: UnwindSafe
[src]

impl<K, I, F> UnwindSafe for af_lib::iter::GroupBy<K, I, F> where
    F: UnwindSafe,
    I: UnwindSafe,
    K: UnwindSafe,
    <I as Iterator>::Item: RefUnwindSafe + UnwindSafe
[src]

impl<K, V> UnwindSafe for af_lib::prelude::af_core::test::prelude::json::Map<K, V> where
    K: RefUnwindSafe,
    V: RefUnwindSafe
[src]

impl<L, R> UnwindSafe for Either<L, R> where
    L: UnwindSafe,
    R: UnwindSafe
[src]

impl<M> UnwindSafe for SendError<M> where
    M: UnwindSafe
[src]

impl<P> UnwindSafe for Pin<P> where
    P: UnwindSafe
[src]

impl<R> UnwindSafe for IoRead<R> where
    R: UnwindSafe
[src]

impl<R> UnwindSafe for Deserializer<R> where
    R: UnwindSafe
[src]

impl<S1, S2> UnwindSafe for Or<S1, S2> where
    S1: UnwindSafe,
    S2: UnwindSafe
[src]

impl<S1, S2> UnwindSafe for Race<S1, S2> where
    S1: UnwindSafe,
    S2: UnwindSafe
[src]

impl<S> UnwindSafe for BlockOn<S> where
    S: UnwindSafe
[src]

impl<S> UnwindSafe for af_lib::prelude::af_core::stream::Cloned<S> where
    S: UnwindSafe
[src]

impl<S> UnwindSafe for af_lib::prelude::af_core::stream::Copied<S> where
    S: UnwindSafe
[src]

impl<S> UnwindSafe for af_lib::prelude::af_core::stream::Cycle<S> where
    S: UnwindSafe
[src]

impl<S> UnwindSafe for af_lib::prelude::af_core::stream::Enumerate<S> where
    S: UnwindSafe
[src]

impl<S> UnwindSafe for af_lib::prelude::af_core::stream::Flatten<S> where
    S: UnwindSafe,
    <S as Stream>::Item: UnwindSafe
[src]

impl<S> UnwindSafe for af_lib::prelude::af_core::stream::Fuse<S> where
    S: UnwindSafe
[src]

impl<S> UnwindSafe for LastFuture<S> where
    S: UnwindSafe,
    <S as Stream>::Item: UnwindSafe
[src]

impl<S> UnwindSafe for af_lib::prelude::af_core::stream::Skip<S> where
    S: UnwindSafe
[src]

impl<S> UnwindSafe for af_lib::prelude::af_core::stream::StepBy<S> where
    S: UnwindSafe
[src]

impl<S> UnwindSafe for af_lib::prelude::af_core::stream::Take<S> where
    S: UnwindSafe
[src]

impl<S, C> UnwindSafe for CollectFuture<S, C> where
    C: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, C> UnwindSafe for TryCollectFuture<S, C> where
    C: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, F> UnwindSafe for af_lib::prelude::af_core::stream::FilterMap<S, F> where
    F: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, F> UnwindSafe for ForEachFuture<S, F> where
    F: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, F> UnwindSafe for af_lib::prelude::af_core::stream::Inspect<S, F> where
    F: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, F> UnwindSafe for af_lib::prelude::af_core::stream::Map<S, F> where
    F: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, F, Fut> UnwindSafe for Then<S, F, Fut> where
    F: UnwindSafe,
    Fut: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, F, T> UnwindSafe for FoldFuture<S, F, T> where
    F: UnwindSafe,
    S: UnwindSafe,
    T: UnwindSafe
[src]

impl<S, FromA, FromB> UnwindSafe for UnzipFuture<S, FromA, FromB> where
    FromA: UnwindSafe,
    FromB: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, P> UnwindSafe for af_lib::prelude::af_core::stream::Filter<S, P> where
    P: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, P> UnwindSafe for af_lib::prelude::af_core::stream::SkipWhile<S, P> where
    P: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, P> UnwindSafe for af_lib::prelude::af_core::stream::TakeWhile<S, P> where
    P: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, P, B> UnwindSafe for PartitionFuture<S, P, B> where
    B: UnwindSafe,
    P: UnwindSafe,
    S: UnwindSafe
[src]

impl<S, St, F> UnwindSafe for af_lib::prelude::af_core::stream::Scan<S, St, F> where
    F: UnwindSafe,
    S: UnwindSafe,
    St: UnwindSafe
[src]

impl<S, U> UnwindSafe for af_lib::prelude::af_core::stream::Chain<S, U> where
    S: UnwindSafe,
    U: UnwindSafe
[src]

impl<S, U, F> UnwindSafe for af_lib::prelude::af_core::stream::FlatMap<S, U, F> where
    F: UnwindSafe,
    S: UnwindSafe,
    U: UnwindSafe
[src]

impl<S: ?Sized> UnwindSafe for CountFuture<S> where
    S: UnwindSafe
[src]

impl<St, F> UnwindSafe for Iterate<St, F> where
    F: UnwindSafe,
    St: UnwindSafe
[src]

impl<St, F> UnwindSafe for af_lib::iter::Unfold<St, F> where
    F: UnwindSafe,
    St: UnwindSafe
[src]

impl<T> !UnwindSafe for Thread<T>[src]

impl<T> !UnwindSafe for af_lib::prelude::RcWeak<T>[src]

impl<T> UnwindSafe for Poll<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for FoldWhile<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for MinMaxResult<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for Position<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for af_lib::postgres::types::Date<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for Timestamp<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for Bound<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for Receiver<T>[src]

impl<T> UnwindSafe for Sender<T>[src]

impl<T> UnwindSafe for af_lib::iter::Empty<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for af_lib::iter::Once<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for Rev<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for TupleBuffer<T> where
    <T as TupleCollect>::Buffer: UnwindSafe
[src]

impl<T> UnwindSafe for af_lib::iter::structs::Zip<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for af_lib::lazy::SyncOnceCell<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for Json<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for af_lib::prelude::af_core::stream::Empty<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for af_lib::prelude::af_core::stream::Once<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for Pending<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for af_lib::prelude::af_core::stream::Repeat<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for af_lib::prelude::af_core::task::join::StoppedTask<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for Join<T>[src]

impl<T> UnwindSafe for af_lib::prelude::af_core::task::Task<T>[src]

impl<T> UnwindSafe for FinishedTask<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for Reverse<T> where
    T: UnwindSafe
[src]

impl<T> UnwindSafe for Discriminant<T> where
    <T as DiscriminantKind>::Discriminant: UnwindSafe
[src]

impl<T> UnwindSafe for MaybeUninit<T> where
    T: UnwindSafe
[src]

impl<T, E> UnwindSafe for TryJoin<T, E>[src]

impl<T, E> UnwindSafe for af_lib::prelude::af_core::task::try_join::StoppedTask<T, E> where
    E: UnwindSafe,
    T: UnwindSafe
[src]

impl<T, F> UnwindSafe for Successors<T, F> where
    F: UnwindSafe,
    T: UnwindSafe
[src]

impl<T, F> UnwindSafe for af_lib::lazy::Lazy<T, F> where
    F: UnwindSafe,
    T: UnwindSafe
[src]

impl<T, F> UnwindSafe for af_lib::prelude::Lazy<T, F> where
    F: UnwindSafe,
    T: UnwindSafe
[src]

impl<T, F, Fut> UnwindSafe for TryUnfold<T, F, Fut> where
    F: UnwindSafe,
    Fut: UnwindSafe,
    T: UnwindSafe
[src]

impl<T, F, Fut> UnwindSafe for af_lib::prelude::af_core::stream::Unfold<T, F, Fut> where
    F: UnwindSafe,
    Fut: UnwindSafe,
    T: UnwindSafe
[src]

impl<T, U> UnwindSafe for ZipLongest<T, U> where
    T: UnwindSafe,
    U: UnwindSafe
[src]

impl<T: ?Sized> UnwindSafe for UnsafeCell<T> where
    T: UnwindSafe
[src]

impl<T: ?Sized> UnwindSafe for af_lib::prelude::ArcWeak<T> where
    T: RefUnwindSafe
[src]

impl<T: ?Sized> UnwindSafe for Cell<T> where
    T: UnwindSafe
[src]

impl<T: ?Sized> UnwindSafe for ManuallyDrop<T> where
    T: UnwindSafe
[src]

impl<T: ?Sized> UnwindSafe for PhantomData<T> where
    T: UnwindSafe
[src]

impl<T: ?Sized> UnwindSafe for RefCell<T> where
    T: UnwindSafe
[src]

impl<W, F> UnwindSafe for af_lib::prelude::af_core::test::prelude::json::Serializer<W, F> where
    F: UnwindSafe,
    W: UnwindSafe
[src]

impl<Y, R> UnwindSafe for GeneratorState<Y, R> where
    R: UnwindSafe,
    Y: UnwindSafe
[src]

Loading content...