pub unsafe trait ZeroableOption { }
Expand description

Marker trait for types that allow Option<Self> to be set to all zeroes in order to write None to that location.

§Safety

The implementer needs to ensure that unsafe impl Zeroable for Option<Self> {} is sound.

Implementations on Foreign Types§

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> A

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> A

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> A

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> A

source§

impl<B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> B

source§

impl<B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> B

source§

impl<B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> B

source§

impl<B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> B

source§

impl<C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> C

source§

impl<C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> C

source§

impl<C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> C

source§

impl<C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> C

source§

impl<D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> D

source§

impl<D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> D

source§

impl<D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> D

source§

impl<D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> D

source§

impl<E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> E

source§

impl<E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> E

source§

impl<E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> E

source§

impl<E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: F, _: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> E

source§

impl<F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> F

source§

impl<F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> F

source§

impl<F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> F

source§

impl<F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: G, _: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> F

source§

impl<G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> G

source§

impl<G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> G

source§

impl<G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> G

source§

impl<G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: H, _: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> G

source§

impl<H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> H

source§

impl<H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> H

source§

impl<H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> H

source§

impl<H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: I, _: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> H

source§

impl<I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> I

source§

impl<I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> I

source§

impl<I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> I

source§

impl<I, J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: J, _: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> I

source§

impl<J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> J

source§

impl<J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> J

source§

impl<J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> J

source§

impl<J, K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: K, _: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> J

source§

impl<K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> K

source§

impl<K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> K

source§

impl<K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> K

source§

impl<K, L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: L, _: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> K

source§

impl<L, M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> L

source§

impl<L, M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> L

source§

impl<L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> L

source§

impl<L, M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: M, _: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> L

source§

impl<M, N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> M

source§

impl<M, N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> M

source§

impl<M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> M

source§

impl<M, N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: N, _: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> M

source§

impl<N, O, P, Q, R, S, T, U> ZeroableOption for fn(_: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> N

source§

impl<N, O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> N

source§

impl<N, O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> N

source§

impl<N, O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: O, _: P, _: Q, _: R, _: S, _: T, _: U) -> N

source§

impl<O, P, Q, R, S, T, U> ZeroableOption for fn(_: P, _: Q, _: R, _: S, _: T, _: U) -> O

source§

impl<O, P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: P, _: Q, _: R, _: S, _: T, _: U) -> O

source§

impl<O, P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: P, _: Q, _: R, _: S, _: T, _: U) -> O

source§

impl<O, P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: P, _: Q, _: R, _: S, _: T, _: U) -> O

source§

impl<P, Q, R, S, T, U> ZeroableOption for fn(_: Q, _: R, _: S, _: T, _: U) -> P

source§

impl<P, Q, R, S, T, U> ZeroableOption for extern "C" fn(_: Q, _: R, _: S, _: T, _: U) -> P

source§

impl<P, Q, R, S, T, U> ZeroableOption for unsafe fn(_: Q, _: R, _: S, _: T, _: U) -> P

source§

impl<P, Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: Q, _: R, _: S, _: T, _: U) -> P

source§

impl<Q, R, S, T, U> ZeroableOption for fn(_: R, _: S, _: T, _: U) -> Q

source§

impl<Q, R, S, T, U> ZeroableOption for extern "C" fn(_: R, _: S, _: T, _: U) -> Q

source§

impl<Q, R, S, T, U> ZeroableOption for unsafe fn(_: R, _: S, _: T, _: U) -> Q

source§

impl<Q, R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: R, _: S, _: T, _: U) -> Q

source§

impl<R, S, T, U> ZeroableOption for fn(_: S, _: T, _: U) -> R

source§

impl<R, S, T, U> ZeroableOption for extern "C" fn(_: S, _: T, _: U) -> R

source§

impl<R, S, T, U> ZeroableOption for unsafe fn(_: S, _: T, _: U) -> R

source§

impl<R, S, T, U> ZeroableOption for unsafe extern "C" fn(_: S, _: T, _: U) -> R

source§

impl<S, T, U> ZeroableOption for fn(_: T, _: U) -> S

source§

impl<S, T, U> ZeroableOption for extern "C" fn(_: T, _: U) -> S

source§

impl<S, T, U> ZeroableOption for unsafe fn(_: T, _: U) -> S

source§

impl<S, T, U> ZeroableOption for unsafe extern "C" fn(_: T, _: U) -> S

source§

impl<T> ZeroableOption for &T

source§

impl<T> ZeroableOption for &mut T

source§

impl<T> ZeroableOption for Box<T>

source§

impl<T> ZeroableOption for NonNull<T>

source§

impl<T, U> ZeroableOption for fn(_: U) -> T

source§

impl<T, U> ZeroableOption for extern "C" fn(_: U) -> T

source§

impl<T, U> ZeroableOption for unsafe fn(_: U) -> T

source§

impl<T, U> ZeroableOption for unsafe extern "C" fn(_: U) -> T

source§

impl<U> ZeroableOption for fn() -> U

source§

impl<U> ZeroableOption for extern "C" fn() -> U

source§

impl<U> ZeroableOption for unsafe fn() -> U

source§

impl<U> ZeroableOption for unsafe extern "C" fn() -> U

Implementors§