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.

Implementors§

1.9.0 · Source§

impl<T> !UnwindSafe for &mut T
where T: ?Sized,

1.9.0 · Source§

impl<T> UnwindSafe for *const T
where T: RefUnwindSafe + ?Sized,

1.9.0 · Source§

impl<T> UnwindSafe for *mut T
where T: RefUnwindSafe + ?Sized,

1.9.0 · Source§

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

1.25.0 · Source§

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

1.28.0 · Source§

impl<T> UnwindSafe for NonZero<T>

1.9.0 · Source§

impl<T> UnwindSafe for AssertUnwindSafe<T>

Auto implementors§

§

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

§

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, I> !UnwindSafe for ByRefSized<'a, I>

§

impl<Dyn> !UnwindSafe for DynMetadata<Dyn>

§

impl<T> !UnwindSafe for TraitImpl<T>

§

impl UnwindSafe for c_void

§

impl UnwindSafe for tpacket_versions

§

impl UnwindSafe for libc::prelude::fmt::Alignment

§

impl UnwindSafe for DebugAsHex

§

impl UnwindSafe for Sign

§

impl UnwindSafe for Abi

§

impl UnwindSafe for Generic

§

impl UnwindSafe for TypeKind

§

impl UnwindSafe for __SI_CLOCK_T

§

impl UnwindSafe for __c_anonymous__bounds__addr_bnd

§

impl UnwindSafe for __c_anonymous__si_fields__kill

§

impl UnwindSafe for __c_anonymous__si_fields__rt

§

impl UnwindSafe for __c_anonymous__si_fields__sigchld

§

impl UnwindSafe for __c_anonymous__si_fields__sigfault

§

impl UnwindSafe for __c_anonymous__si_fields__sigpoll

§

impl UnwindSafe for __c_anonymous__si_fields__sigsys

§

impl UnwindSafe for __c_anonymous__si_fields__timer

§

impl UnwindSafe for DIR

§

impl UnwindSafe for Dl_info

§

impl UnwindSafe for Elf32_Chdr

§

impl UnwindSafe for Elf32_Ehdr

§

impl UnwindSafe for Elf32_Phdr

§

impl UnwindSafe for Elf32_Shdr

§

impl UnwindSafe for Elf32_Sym

§

impl UnwindSafe for Elf64_Chdr

§

impl UnwindSafe for Elf64_Ehdr

§

impl UnwindSafe for Elf64_Phdr

§

impl UnwindSafe for Elf64_Shdr

§

impl UnwindSafe for Elf64_Sym

§

impl UnwindSafe for FILE

§

impl UnwindSafe for __c_anonymous__kernel_fsid_t

§

impl UnwindSafe for __c_anonymous_elf32_rel

§

impl UnwindSafe for __c_anonymous_elf32_rela

§

impl UnwindSafe for __c_anonymous_elf64_rel

§

impl UnwindSafe for __c_anonymous_elf64_rela

§

impl UnwindSafe for __c_anonymous_ifru_map

§

impl UnwindSafe for __c_anonymous_ptrace_syscall_info_entry

§

impl UnwindSafe for __c_anonymous_ptrace_syscall_info_exit

§

impl UnwindSafe for __c_anonymous_ptrace_syscall_info_seccomp

§

impl UnwindSafe for __c_anonymous_sockaddr_can_j1939

§

impl UnwindSafe for __c_anonymous_sockaddr_can_tp

§

impl UnwindSafe for __exit_status

§

impl UnwindSafe for __timeval

§

impl UnwindSafe for _libc_fpstate

§

impl UnwindSafe for _libc_fpxreg

§

impl UnwindSafe for _libc_xmmreg

§

impl UnwindSafe for addrinfo

§

impl UnwindSafe for af_alg_iv

§

impl UnwindSafe for aiocb

§

impl UnwindSafe for arpd_request

§

impl UnwindSafe for arphdr

§

impl UnwindSafe for arpreq

§

impl UnwindSafe for arpreq_old

§

impl UnwindSafe for bcm_msg_head

§

impl UnwindSafe for bcm_timeval

§

impl UnwindSafe for can_berr_counter

§

impl UnwindSafe for can_bittiming

§

impl UnwindSafe for can_bittiming_const

§

impl UnwindSafe for can_clock

§

impl UnwindSafe for can_ctrlmode

§

impl UnwindSafe for can_device_stats

§

impl UnwindSafe for can_filter

§

impl UnwindSafe for can_frame

§

impl UnwindSafe for canfd_frame

§

impl UnwindSafe for canxl_frame

§

impl UnwindSafe for clone_args

§

impl UnwindSafe for cmsghdr

§

impl UnwindSafe for cpu_set_t

§

impl UnwindSafe for dirent64

§

impl UnwindSafe for dirent

§

impl UnwindSafe for dl_phdr_info

§

impl UnwindSafe for dmabuf_cmsg

§

impl UnwindSafe for dmabuf_token

§

impl UnwindSafe for dqblk

§

impl UnwindSafe for epoll_event

§

impl UnwindSafe for epoll_params

§

impl UnwindSafe for ethhdr

§

impl UnwindSafe for fanotify_event_info_error

§

impl UnwindSafe for fanotify_event_info_fid

§

impl UnwindSafe for fanotify_event_info_header

§

impl UnwindSafe for fanotify_event_info_pidfd

§

impl UnwindSafe for fanotify_event_metadata

§

impl UnwindSafe for fanotify_response

§

impl UnwindSafe for fanout_args

§

impl UnwindSafe for fd_set

§

impl UnwindSafe for ff_condition_effect

§

impl UnwindSafe for ff_constant_effect

§

impl UnwindSafe for ff_effect

§

impl UnwindSafe for ff_envelope

§

impl UnwindSafe for ff_periodic_effect

§

impl UnwindSafe for ff_ramp_effect

§

impl UnwindSafe for ff_replay

§

impl UnwindSafe for ff_rumble_effect

§

impl UnwindSafe for ff_trigger

§

impl UnwindSafe for file_clone_range

§

impl UnwindSafe for file_handle

§

impl UnwindSafe for flock64

§

impl UnwindSafe for flock

§

impl UnwindSafe for fpos64_t

§

impl UnwindSafe for fpos_t

§

impl UnwindSafe for fsid_t

§

impl UnwindSafe for futex_waitv

§

impl UnwindSafe for genlmsghdr

§

impl UnwindSafe for glob64_t

§

impl UnwindSafe for glob_t

§

impl UnwindSafe for group

§

impl UnwindSafe for group_req

§

impl UnwindSafe for group_source_req

§

impl UnwindSafe for hostent

§

impl UnwindSafe for hwtstamp_config

§

impl UnwindSafe for if_nameindex

§

impl UnwindSafe for ifaddrmsg

§

impl UnwindSafe for ifaddrs

§

impl UnwindSafe for ifconf

§

impl UnwindSafe for ifinfomsg

§

impl UnwindSafe for ifreq

§

impl UnwindSafe for in6_addr

§

impl UnwindSafe for in6_ifreq

§

impl UnwindSafe for in6_pktinfo

§

impl UnwindSafe for in6_rtmsg

§

impl UnwindSafe for in_addr

§

impl UnwindSafe for in_pktinfo

§

impl UnwindSafe for inotify_event

§

impl UnwindSafe for input_absinfo

§

impl UnwindSafe for input_event

§

impl UnwindSafe for input_id

§

impl UnwindSafe for input_keymap_entry

§

impl UnwindSafe for input_mask

§

impl UnwindSafe for iocb

§

impl UnwindSafe for iovec

§

impl UnwindSafe for ip_mreq

§

impl UnwindSafe for ip_mreq_source

§

impl UnwindSafe for ip_mreqn

§

impl UnwindSafe for ipc_perm

§

impl UnwindSafe for ipv6_mreq

§

impl UnwindSafe for itimerspec

§

impl UnwindSafe for itimerval

§

impl UnwindSafe for iw_discarded

§

impl UnwindSafe for iw_encode_ext

§

impl UnwindSafe for iw_event

§

impl UnwindSafe for iw_freq

§

impl UnwindSafe for iw_michaelmicfailure

§

impl UnwindSafe for iw_missed

§

impl UnwindSafe for iw_mlme

§

impl UnwindSafe for iw_param

§

impl UnwindSafe for iw_pmkid_cand

§

impl UnwindSafe for iw_pmksa

§

impl UnwindSafe for iw_point

§

impl UnwindSafe for iw_priv_args

§

impl UnwindSafe for iw_quality

§

impl UnwindSafe for iw_range

§

impl UnwindSafe for iw_scan_req

§

impl UnwindSafe for iw_statistics

§

impl UnwindSafe for iw_thrspy

§

impl UnwindSafe for iwreq

§

impl UnwindSafe for j1939_filter

§

impl UnwindSafe for lconv

§

impl UnwindSafe for linger

§

impl UnwindSafe for mallinfo2

§

impl UnwindSafe for mallinfo

§

impl UnwindSafe for max_align_t

§

impl UnwindSafe for mbstate_t

§

impl UnwindSafe for mcontext_t

§

impl UnwindSafe for mmsghdr

§

impl UnwindSafe for mnt_ns_info

§

impl UnwindSafe for mntent

§

impl UnwindSafe for mount_attr

§

impl UnwindSafe for mq_attr

§

impl UnwindSafe for msghdr

§

impl UnwindSafe for msginfo

§

impl UnwindSafe for msqid_ds

§

impl UnwindSafe for netent

§

impl UnwindSafe for nl_mmap_hdr

§

impl UnwindSafe for nl_mmap_req

§

impl UnwindSafe for nl_pktinfo

§

impl UnwindSafe for nlattr

§

impl UnwindSafe for nlmsgerr

§

impl UnwindSafe for nlmsghdr

§

impl UnwindSafe for ntptimeval

§

impl UnwindSafe for open_how

§

impl UnwindSafe for option

§

impl UnwindSafe for packet_mreq

§

impl UnwindSafe for passwd

§

impl UnwindSafe for pidfd_info

§

impl UnwindSafe for pollfd

§

impl UnwindSafe for posix_spawn_file_actions_t

§

impl UnwindSafe for posix_spawnattr_t

§

impl UnwindSafe for protoent

§

impl UnwindSafe for pthread_attr_t

§

impl UnwindSafe for pthread_barrier_t

§

impl UnwindSafe for pthread_barrierattr_t

§

impl UnwindSafe for pthread_cond_t

§

impl UnwindSafe for pthread_condattr_t

§

impl UnwindSafe for pthread_mutex_t

§

impl UnwindSafe for pthread_mutexattr_t

§

impl UnwindSafe for pthread_rwlock_t

§

impl UnwindSafe for pthread_rwlockattr_t

§

impl UnwindSafe for ptp_clock_caps

§

impl UnwindSafe for ptp_clock_time

§

impl UnwindSafe for ptp_extts_event

§

impl UnwindSafe for ptp_extts_request

§

impl UnwindSafe for ptp_perout_request

§

impl UnwindSafe for ptp_pin_desc

§

impl UnwindSafe for ptp_sys_offset

§

impl UnwindSafe for ptp_sys_offset_extended

§

impl UnwindSafe for ptp_sys_offset_precise

§

impl UnwindSafe for ptrace_peeksiginfo_args

§

impl UnwindSafe for ptrace_rseq_configuration

§

impl UnwindSafe for ptrace_sud_config

§

impl UnwindSafe for ptrace_syscall_info

§

impl UnwindSafe for regex_t

§

impl UnwindSafe for regmatch_t

§

impl UnwindSafe for rlimit64

§

impl UnwindSafe for rlimit

§

impl UnwindSafe for rtattr

§

impl UnwindSafe for rtentry

§

impl UnwindSafe for rusage

§

impl UnwindSafe for sched_attr

§

impl UnwindSafe for sched_param

§

impl UnwindSafe for sctp_authinfo

§

impl UnwindSafe for sctp_initmsg

§

impl UnwindSafe for sctp_nxtinfo

§

impl UnwindSafe for sctp_prinfo

§

impl UnwindSafe for sctp_rcvinfo

§

impl UnwindSafe for sctp_sndinfo

§

impl UnwindSafe for sctp_sndrcvinfo

§

impl UnwindSafe for seccomp_data

§

impl UnwindSafe for seccomp_notif

§

impl UnwindSafe for seccomp_notif_addfd

§

impl UnwindSafe for seccomp_notif_resp

§

impl UnwindSafe for seccomp_notif_sizes

§

impl UnwindSafe for sem_t

§

impl UnwindSafe for sembuf

§

impl UnwindSafe for semid_ds

§

impl UnwindSafe for seminfo

§

impl UnwindSafe for servent

§

impl UnwindSafe for shmid_ds

§

impl UnwindSafe for sigaction

§

impl UnwindSafe for sigevent

§

impl UnwindSafe for siginfo_t

§

impl UnwindSafe for signalfd_siginfo

§

impl UnwindSafe for sigset_t

§

impl UnwindSafe for sigval

§

impl UnwindSafe for sock_extended_err

§

impl UnwindSafe for sock_filter

§

impl UnwindSafe for sock_fprog

§

impl UnwindSafe for sock_txtime

§

impl UnwindSafe for sockaddr

§

impl UnwindSafe for sockaddr_alg

§

impl UnwindSafe for sockaddr_can

§

impl UnwindSafe for sockaddr_in6

§

impl UnwindSafe for sockaddr_in

§

impl UnwindSafe for sockaddr_iucv

§

impl UnwindSafe for sockaddr_ll

§

impl UnwindSafe for sockaddr_nl

§

impl UnwindSafe for sockaddr_pkt

§

impl UnwindSafe for sockaddr_storage

§

impl UnwindSafe for sockaddr_un

§

impl UnwindSafe for sockaddr_vm

§

impl UnwindSafe for sockaddr_xdp

§

impl UnwindSafe for spwd

§

impl UnwindSafe for stack_t

§

impl UnwindSafe for stat64

§

impl UnwindSafe for stat

§

impl UnwindSafe for statfs64

§

impl UnwindSafe for statfs

§

impl UnwindSafe for statvfs64

§

impl UnwindSafe for statvfs

§

impl UnwindSafe for statx

§

impl UnwindSafe for statx_timestamp

§

impl UnwindSafe for sysinfo

§

impl UnwindSafe for tcp_info

§

impl UnwindSafe for termios2

§

impl UnwindSafe for termios

§

impl UnwindSafe for timespec

§

impl UnwindSafe for timeval

§

impl UnwindSafe for timex

§

impl UnwindSafe for timezone

§

impl UnwindSafe for tls12_crypto_info_aes_ccm_128

§

impl UnwindSafe for tls12_crypto_info_aes_gcm_128

§

impl UnwindSafe for tls12_crypto_info_aes_gcm_256

§

impl UnwindSafe for tls12_crypto_info_aria_gcm_128

§

impl UnwindSafe for tls12_crypto_info_aria_gcm_256

§

impl UnwindSafe for tls12_crypto_info_chacha20_poly1305

§

impl UnwindSafe for tls12_crypto_info_sm4_ccm

§

impl UnwindSafe for tls12_crypto_info_sm4_gcm

§

impl UnwindSafe for tls_crypto_info

§

impl UnwindSafe for tm

§

impl UnwindSafe for tms

§

impl UnwindSafe for tpacket2_hdr

§

impl UnwindSafe for tpacket3_hdr

§

impl UnwindSafe for tpacket_auxdata

§

impl UnwindSafe for tpacket_bd_ts

§

impl UnwindSafe for tpacket_block_desc

§

impl UnwindSafe for tpacket_hdr

§

impl UnwindSafe for tpacket_hdr_v1

§

impl UnwindSafe for tpacket_hdr_variant1

§

impl UnwindSafe for tpacket_req3

§

impl UnwindSafe for tpacket_req

§

impl UnwindSafe for tpacket_rollover_stats

§

impl UnwindSafe for tpacket_stats

§

impl UnwindSafe for tpacket_stats_v3

§

impl UnwindSafe for ucontext_t

§

impl UnwindSafe for ucred

§

impl UnwindSafe for uinput_abs_setup

§

impl UnwindSafe for uinput_ff_erase

§

impl UnwindSafe for uinput_ff_upload

§

impl UnwindSafe for uinput_setup

§

impl UnwindSafe for uinput_user_dev

§

impl UnwindSafe for user

§

impl UnwindSafe for user_fpregs_struct

§

impl UnwindSafe for user_regs_struct

§

impl UnwindSafe for utimbuf

§

impl UnwindSafe for utmpx

§

impl UnwindSafe for utsname

§

impl UnwindSafe for winsize

§

impl UnwindSafe for xdp_desc

§

impl UnwindSafe for xdp_mmap_offsets

§

impl UnwindSafe for xdp_mmap_offsets_v1

§

impl UnwindSafe for xdp_options

§

impl UnwindSafe for xdp_ring_offset

§

impl UnwindSafe for xdp_ring_offset_v1

§

impl UnwindSafe for xdp_statistics

§

impl UnwindSafe for xdp_statistics_v1

§

impl UnwindSafe for xdp_umem_reg

§

impl UnwindSafe for xdp_umem_reg_v1

§

impl UnwindSafe for xsk_tx_metadata

§

impl UnwindSafe for xsk_tx_metadata_completion

§

impl UnwindSafe for xsk_tx_metadata_request

§

impl UnwindSafe for Error

§

impl UnwindSafe for FormattingOptions

§

impl UnwindSafe for SipHasher

§

impl UnwindSafe for libc::prelude::mem::Alignment

§

impl UnwindSafe for Assume

§

impl UnwindSafe for Array

§

impl UnwindSafe for Bool

§

impl UnwindSafe for Char

§

impl UnwindSafe for Const

§

impl UnwindSafe for DynTrait

§

impl UnwindSafe for DynTraitPredicate

§

impl UnwindSafe for Enum

§

impl UnwindSafe for Field

§

impl UnwindSafe for Float

§

impl UnwindSafe for FnPtr

§

impl UnwindSafe for GenericType

§

impl UnwindSafe for Int

§

impl UnwindSafe for Lifetime

§

impl UnwindSafe for Pointer

§

impl UnwindSafe for Reference

§

impl UnwindSafe for Slice

§

impl UnwindSafe for Str

§

impl UnwindSafe for Struct

§

impl UnwindSafe for Trait

§

impl UnwindSafe for Tuple

§

impl UnwindSafe for Type

§

impl UnwindSafe for Union

§

impl UnwindSafe for Variant

§

impl UnwindSafe for __c_anonymous__sigfault__bounds

§

impl UnwindSafe for __c_anonymous_siginfo_t__si_fields

§

impl UnwindSafe for __c_anonymous_ifc_ifcu

§

impl UnwindSafe for __c_anonymous_ifr_ifru

§

impl UnwindSafe for __c_anonymous_iwreq

§

impl UnwindSafe for __c_anonymous_ptp_perout_request_1

§

impl UnwindSafe for __c_anonymous_ptp_perout_request_2

§

impl UnwindSafe for __c_anonymous_ptrace_syscall_info_data

§

impl UnwindSafe for __c_anonymous_sockaddr_can_can_addr

§

impl UnwindSafe for __c_anonymous_xsk_tx_metadata_union

§

impl UnwindSafe for iwreq_data

§

impl UnwindSafe for tpacket_bd_header_u

§

impl UnwindSafe for tpacket_req_u

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<F> UnwindSafe for libc::prelude::fmt::FromFn<F>
where F: UnwindSafe,

§

impl<F> UnwindSafe for libc::prelude::iter::FromFn<F>
where F: UnwindSafe,

§

impl<F> UnwindSafe for OnceWith<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> 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 Enumerate<I>
where I: UnwindSafe,

§

impl<I> UnwindSafe for Flatten<I>

§

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 Take<I>
where I: 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, F, const N: usize> UnwindSafe for MapWindows<I, F, N>
where F: UnwindSafe, I: UnwindSafe, <I as Iterator>::Item: 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<P> UnwindSafe for MaybeDangling<P>
where P: UnwindSafe + ?Sized,

§

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

§

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

§

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

§

impl<T> UnwindSafe for Empty<T>

§

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

§

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

§

impl<T> UnwindSafe for Discriminant<T>

§

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

§

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

§

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

§

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