try_specialize

Trait LifetimeFree

source
pub unsafe trait LifetimeFree: 'static { }
Expand description

A marker trait for types that do not contain any lifetime parameters.

Such types are safe to cast from non-static type parameters if their types are equal. This trait is used to determine safe specialization methods in TrySpecialize trait and safe constructor for Specialization. The LifetimeFree bound is stricter than 'static bound. All LifetimeFree types are also 'static, but the reverse is not true.

This trait is not automatically generated for all lifetime free types. Use Specialization::rev to specialize from a LifetimeFree type to an unconstrained type.

§Safety

When implementing this trait for a struct, enum or union type, you must ensure that the type does not contain any lifetime parameters. When implementing this trait for a type alias, you must ensure that the underlying struct, enum or union type does not contain any lifetime parameters.

Note, however, that the use of 'static values in type fields is allowed. So:

  • struct First<'a, T>( /* ... */ ) is not a lifetime free type.
  • type Second<T> = First<'static, T> is not a lifetime free type.
  • type Third = Second<u32> is not a lifetime free type, because the underlying type is still First<'static, T>.

Whereas for T: LifetimeFree the struct Fourth<T>(&'static str, Cow<'static, T>) and its aliases can be considered as lifetime free types, since the underlying struct has no lifetime parameters. It only has fields with lifetimes, which that is allowed. Therefore it is safe to impl LifetimeFree<T> for Fourth<T> where T: LifetimeFree {}.

Implementing this trait for types which uses lifetimes may result to undefined behavior.

§Examples

use try_specialize::LifetimeFree;

struct MarkerType;
struct U32Pair(u32, u32);
struct CustomVec<T> {
    ptr: *mut T,
    cap: usize,
    len: usize,
}
struct Data {
    // ...
}
enum Either<T1, T2> {
    Left(T1),
    Right(T2),
}

unsafe impl LifetimeFree for MarkerType {}
unsafe impl LifetimeFree for U32Pair {}
unsafe impl<T: LifetimeFree> LifetimeFree for CustomVec<T> {}
unsafe impl LifetimeFree for Data {}
unsafe impl<T1, T2> LifetimeFree for Either<T1, T2>
where
    T1: LifetimeFree,
    T2: LifetimeFree,
{
}

Safe examples with 'static used in fields:

use std::borrow::Cow;

use try_specialize::LifetimeFree;

// Original type must not implement `LifetimeFree` because it has lifetime parameters.
// However its wrapper without lifetime parameters can implement `LifetimeFree`.
struct WithLifetimes<'a, 'b, T, U>(&'a str, &'b [u8], T, U);

struct StaticStrWrapper(pub &'static str);
struct StaticRefWrapper<T: LifetimeFree>(pub &'static T);
struct StaticCowWrapper<T: LifetimeFree + ToOwned>(pub Cow<'static, T>);
struct WithLifetimesWrapper<T, U>(pub WithLifetimes<'static, 'static, T, U>);

unsafe impl LifetimeFree for StaticStrWrapper {}
unsafe impl<T: LifetimeFree> LifetimeFree for StaticRefWrapper<T> {}
unsafe impl<T: LifetimeFree + ToOwned> LifetimeFree for StaticCowWrapper<T> {}
unsafe impl<T: LifetimeFree, U: LifetimeFree> LifetimeFree for WithLifetimesWrapper<T, U> {}

Invalid usage examples with explicit or implicit 'static parameters:

use std::borrow::Cow;

use try_specialize::LifetimeFree;

struct WithLifetimes<'a, 'b, T, U>(&'a str, &'b [u8], T, U);

type StaticStrAlias = &'static str;
type StaticRefAlias<T> = &'static T;
type StaticCowAlias<T> = Cow<'static, T>;
type WithLifetimesAlias<T, U> = WithLifetimes<'static, 'static, T, U>;

// Do not implement use it!
// Any implementation below may result to undefined behavior!
UB!{ unsafe impl LifetimeFree for StaticStrAlias {} }
UB!{ unsafe impl<T: LifetimeFree> LifetimeFree for StaticRefAlias<T> {} }
UB!{ unsafe impl<T: LifetimeFree> LifetimeFree for StaticCowAlias<T> {} }
UB!{
    unsafe impl<T: LifetimeFree, U: LifetimeFree> LifetimeFree
        for WithLifetimes<'static, 'static, T, U> {}
}
UB!{
    unsafe impl<T: LifetimeFree, U: LifetimeFree> LifetimeFree
        for WithLifetimesAlias<T, U> {}
}

Implementations on Foreign Types§

source§

impl LifetimeFree for Ordering

source§

impl LifetimeFree for Infallible

source§

impl LifetimeFree for c_void

source§

impl LifetimeFree for Alignment

source§

impl LifetimeFree for IpAddr

source§

impl LifetimeFree for SocketAddr

source§

impl LifetimeFree for FpCategory

source§

impl LifetimeFree for IntErrorKind

source§

impl LifetimeFree for Ordering

source§

impl LifetimeFree for BacktraceStatus

Available on crate feature std only.
source§

impl LifetimeFree for VarError

Available on crate feature std only.
source§

impl LifetimeFree for SeekFrom

Available on crate feature std only.
source§

impl LifetimeFree for ErrorKind

Available on crate feature std only.
source§

impl LifetimeFree for Shutdown

Available on crate feature std only.
source§

impl LifetimeFree for RecvTimeoutError

Available on crate feature std only.
source§

impl LifetimeFree for TryRecvError

Available on crate feature std only.
source§

impl LifetimeFree for bool

source§

impl LifetimeFree for char

source§

impl LifetimeFree for f32

source§

impl LifetimeFree for f64

source§

impl LifetimeFree for i8

source§

impl LifetimeFree for i16

source§

impl LifetimeFree for i32

source§

impl LifetimeFree for i64

source§

impl LifetimeFree for i128

source§

impl LifetimeFree for isize

source§

impl LifetimeFree for str

source§

impl LifetimeFree for u8

source§

impl LifetimeFree for u16

source§

impl LifetimeFree for u32

source§

impl LifetimeFree for u64

source§

impl LifetimeFree for u128

source§

impl LifetimeFree for ()

source§

impl LifetimeFree for usize

source§

impl LifetimeFree for TryReserveError

Available on crate feature alloc only.
source§

impl LifetimeFree for CString

Available on crate feature alloc only.
source§

impl LifetimeFree for FromUtf8Error

Available on crate feature alloc only.
source§

impl LifetimeFree for FromUtf16Error

Available on crate feature alloc only.
source§

impl LifetimeFree for String

Available on crate feature alloc only.
source§

impl LifetimeFree for Layout

source§

impl LifetimeFree for LayoutError

source§

impl LifetimeFree for TypeId

source§

impl LifetimeFree for TryFromSliceError

source§

impl LifetimeFree for EscapeDefault

source§

impl LifetimeFree for BorrowError

source§

impl LifetimeFree for BorrowMutError

source§

impl LifetimeFree for CharTryFromError

source§

impl LifetimeFree for ParseCharError

source§

impl LifetimeFree for DecodeUtf16Error

source§

impl LifetimeFree for EscapeDebug

source§

impl LifetimeFree for EscapeDefault

source§

impl LifetimeFree for EscapeUnicode

source§

impl LifetimeFree for ToLowercase

source§

impl LifetimeFree for ToUppercase

source§

impl LifetimeFree for TryFromCharError

source§

impl LifetimeFree for CpuidResult

Available on x86 only.
source§

impl LifetimeFree for __m128

Available on x86 only.
source§

impl LifetimeFree for __m128d

Available on x86 only.
source§

impl LifetimeFree for __m128i

Available on x86 only.
source§

impl LifetimeFree for __m256

Available on x86 only.
source§

impl LifetimeFree for __m256d

Available on x86 only.
source§

impl LifetimeFree for __m256i

Available on x86 only.
source§

impl LifetimeFree for __m512

Available on x86 only.
source§

impl LifetimeFree for __m512d

Available on x86 only.
source§

impl LifetimeFree for __m512i

Available on x86 only.
source§

impl LifetimeFree for CStr

source§

impl LifetimeFree for Error

source§

impl LifetimeFree for PhantomPinned

source§

impl LifetimeFree for Ipv4Addr

source§

impl LifetimeFree for Ipv6Addr

source§

impl LifetimeFree for AddrParseError

source§

impl LifetimeFree for SocketAddrV4

source§

impl LifetimeFree for SocketAddrV6

source§

impl LifetimeFree for ParseFloatError

source§

impl LifetimeFree for ParseIntError

source§

impl LifetimeFree for TryFromIntError

source§

impl LifetimeFree for RangeFull

source§

impl LifetimeFree for ParseBoolError

source§

impl LifetimeFree for Utf8Error

source§

impl LifetimeFree for AtomicBool

source§

impl LifetimeFree for AtomicI8

source§

impl LifetimeFree for AtomicI16

source§

impl LifetimeFree for AtomicI32

source§

impl LifetimeFree for AtomicI64

source§

impl LifetimeFree for AtomicIsize

source§

impl LifetimeFree for AtomicU8

source§

impl LifetimeFree for AtomicU16

source§

impl LifetimeFree for AtomicU32

source§

impl LifetimeFree for AtomicU64

source§

impl LifetimeFree for AtomicUsize

source§

impl LifetimeFree for RawWaker

source§

impl LifetimeFree for RawWakerVTable

source§

impl LifetimeFree for Waker

source§

impl LifetimeFree for Duration

source§

impl LifetimeFree for TryFromFloatSecsError

source§

impl LifetimeFree for System

Available on crate feature std only.
source§

impl LifetimeFree for Backtrace

Available on crate feature std only.
source§

impl LifetimeFree for Args

Available on crate feature std only.
source§

impl LifetimeFree for ArgsOs

Available on crate feature std only.
source§

impl LifetimeFree for JoinPathsError

Available on crate feature std only.
source§

impl LifetimeFree for Vars

Available on crate feature std only.
source§

impl LifetimeFree for VarsOs

Available on crate feature std only.
source§

impl LifetimeFree for OsStr

Available on crate feature std only.
source§

impl LifetimeFree for OsString

Available on crate feature std only.
source§

impl LifetimeFree for DirBuilder

Available on crate feature std only.
source§

impl LifetimeFree for DirEntry

Available on crate feature std only.
source§

impl LifetimeFree for File

Available on crate feature std only.
source§

impl LifetimeFree for FileTimes

Available on crate feature std only.
source§

impl LifetimeFree for FileType

Available on crate feature std only.
source§

impl LifetimeFree for Metadata

Available on crate feature std only.
source§

impl LifetimeFree for OpenOptions

Available on crate feature std only.
source§

impl LifetimeFree for Permissions

Available on crate feature std only.
source§

impl LifetimeFree for ReadDir

Available on crate feature std only.
source§

impl LifetimeFree for DefaultHasher

Available on crate feature std only.
source§

impl LifetimeFree for RandomState

Available on crate feature std only.
source§

impl LifetimeFree for WriterPanicked

Available on crate feature std only.
source§

impl LifetimeFree for Error

Available on crate feature std only.
source§

impl LifetimeFree for Stderr

Available on crate feature std only.
source§

impl LifetimeFree for Stdin

Available on crate feature std only.
source§

impl LifetimeFree for Stdout

Available on crate feature std only.
source§

impl LifetimeFree for Empty

Available on crate feature std only.
source§

impl LifetimeFree for Repeat

Available on crate feature std only.
source§

impl LifetimeFree for Sink

Available on crate feature std only.
source§

impl LifetimeFree for TcpListener

Available on crate feature std only.
source§

impl LifetimeFree for TcpStream

Available on crate feature std only.
source§

impl LifetimeFree for UdpSocket

Available on crate feature std only.
source§

impl LifetimeFree for OwnedFd

Available on crate feature std and (Unix or HermitCore or WASI) only.
source§

impl LifetimeFree for SocketAddr

Available on crate feature std and Unix only.
source§

impl LifetimeFree for UnixDatagram

Available on crate feature std and Unix only.
source§

impl LifetimeFree for UnixListener

Available on crate feature std and Unix only.
source§

impl LifetimeFree for UnixStream

Available on crate feature std and Unix only.
source§

impl LifetimeFree for Path

Available on crate feature std only.
source§

impl LifetimeFree for PathBuf

Available on crate feature std only.
source§

impl LifetimeFree for StripPrefixError

Available on crate feature std only.
source§

impl LifetimeFree for Child

Available on crate feature std only.
source§

impl LifetimeFree for ChildStderr

Available on crate feature std only.
source§

impl LifetimeFree for ChildStdin

Available on crate feature std only.
source§

impl LifetimeFree for ChildStdout

Available on crate feature std only.
source§

impl LifetimeFree for Command

Available on crate feature std only.
source§

impl LifetimeFree for ExitCode

Available on crate feature std only.
source§

impl LifetimeFree for ExitStatus

Available on crate feature std only.
source§

impl LifetimeFree for Output

Available on crate feature std only.
source§

impl LifetimeFree for Stdio

Available on crate feature std only.
source§

impl LifetimeFree for Barrier

Available on crate feature std only.
source§

impl LifetimeFree for BarrierWaitResult

Available on crate feature std only.
source§

impl LifetimeFree for Condvar

Available on crate feature std only.
source§

impl LifetimeFree for WaitTimeoutResult

Available on crate feature std only.
source§

impl LifetimeFree for RecvError

Available on crate feature std only.
source§

impl LifetimeFree for Once

Available on crate feature std only.
source§

impl LifetimeFree for OnceState

Available on crate feature std only.
source§

impl LifetimeFree for AccessError

Available on crate feature std only.
source§

impl LifetimeFree for Builder

Available on crate feature std only.
source§

impl LifetimeFree for Thread

Available on crate feature std only.
source§

impl LifetimeFree for ThreadId

Available on crate feature std only.
source§

impl LifetimeFree for Instant

Available on crate feature std only.
source§

impl LifetimeFree for SystemTime

Available on crate feature std only.
source§

impl LifetimeFree for SystemTimeError

Available on crate feature std only.
source§

impl LifetimeFree for NonZeroI8

source§

impl LifetimeFree for NonZeroI16

source§

impl LifetimeFree for NonZeroI32

source§

impl LifetimeFree for NonZeroI64

source§

impl LifetimeFree for NonZeroI128

source§

impl LifetimeFree for NonZeroIsize

source§

impl LifetimeFree for NonZeroU8

source§

impl LifetimeFree for NonZeroU16

source§

impl LifetimeFree for NonZeroU32

source§

impl LifetimeFree for NonZeroU64

source§

impl LifetimeFree for NonZeroU128

source§

impl LifetimeFree for NonZeroUsize

source§

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

source§

impl<A> LifetimeFree for IntoIter<A>
where A: LifetimeFree,

source§

impl<A, B> LifetimeFree for Chain<A, B>

source§

impl<A, B> LifetimeFree for Zip<A, B>

source§

impl<B> LifetimeFree for Lines<B>
where B: LifetimeFree,

Available on crate feature std only.
source§

impl<B> LifetimeFree for Split<B>
where B: LifetimeFree,

Available on crate feature std only.
source§

impl<B, C> LifetimeFree for ControlFlow<B, C>

source§

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

source§

impl<F> LifetimeFree for FromFn<F>
where F: LifetimeFree,

source§

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

source§

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

source§

impl<H> LifetimeFree for BuildHasherDefault<H>
where H: LifetimeFree,

source§

impl<I> LifetimeFree for DecodeUtf16<I>
where I: LifetimeFree + Iterator<Item = u16>,

source§

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

source§

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

source§

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

source§

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

source§

impl<I> LifetimeFree for Flatten<I>

source§

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

source§

impl<I> LifetimeFree for Peekable<I>

source§

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

source§

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

source§

impl<I> LifetimeFree for Take<I>
where I: LifetimeFree,

source§

impl<I, F> LifetimeFree for FilterMap<I, F>

source§

impl<I, F> LifetimeFree for Inspect<I, F>

source§

impl<I, F> LifetimeFree for Map<I, F>

source§

impl<I, F> LifetimeFree for MapWhile<I, F>

source§

impl<I, P> LifetimeFree for Filter<I, P>

source§

impl<I, P> LifetimeFree for SkipWhile<I, P>

source§

impl<I, P> LifetimeFree for TakeWhile<I, P>

source§

impl<I, St, F> LifetimeFree for Scan<I, St, F>

source§

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

source§

impl<K, V> LifetimeFree for BTreeMap<K, V>

Available on crate feature alloc only.
source§

impl<K, V> LifetimeFree for IntoIter<K, V>

Available on crate feature alloc only.
source§

impl<K, V> LifetimeFree for IntoKeys<K, V>

Available on crate feature alloc only.
source§

impl<K, V> LifetimeFree for IntoValues<K, V>

Available on crate feature alloc only.
source§

impl<K, V> LifetimeFree for IntoIter<K, V>

Available on crate feature std only.
source§

impl<K, V> LifetimeFree for IntoKeys<K, V>

Available on crate feature std only.
source§

impl<K, V> LifetimeFree for IntoValues<K, V>

Available on crate feature std only.
source§

impl<K, V, S> LifetimeFree for HashMap<K, V, S>

Available on crate feature std only.
source§

impl<R> LifetimeFree for fn() -> R
where R: LifetimeFree,

source§

impl<R> LifetimeFree for BufReader<R>
where R: ?Sized + LifetimeFree,

Available on crate feature std only.
source§

impl<R> LifetimeFree for Bytes<R>
where R: LifetimeFree,

Available on crate feature std only.
source§

impl<R> LifetimeFree for extern "C" fn() -> R
where R: LifetimeFree,

source§

impl<R> LifetimeFree for extern "system" fn() -> R
where R: LifetimeFree,

source§

impl<T1> LifetimeFree for (T1,)
where T1: LifetimeFree,

source§

impl<T1, R> LifetimeFree for fn(_: T1) -> R
where T1: LifetimeFree, R: LifetimeFree,

source§

impl<T1, R> LifetimeFree for extern "C" fn(_: T1) -> R
where T1: LifetimeFree, R: LifetimeFree,

source§

impl<T1, R> LifetimeFree for extern "system" fn(_: T1) -> R
where T1: LifetimeFree, R: LifetimeFree,

source§

impl<T1, T2> LifetimeFree for (T1, T2)
where T1: LifetimeFree, T2: LifetimeFree,

source§

impl<T1, T2, R> LifetimeFree for fn(_: T1, _: T2) -> R

source§

impl<T1, T2, R> LifetimeFree for extern "C" fn(_: T1, _: T2) -> R

source§

impl<T1, T2, R> LifetimeFree for extern "system" fn(_: T1, _: T2) -> R

source§

impl<T1, T2, T3> LifetimeFree for (T1, T2, T3)

source§

impl<T1, T2, T3, R> LifetimeFree for fn(_: T1, _: T2, _: T3) -> R

source§

impl<T1, T2, T3, R> LifetimeFree for extern "C" fn(_: T1, _: T2, _: T3) -> R

source§

impl<T1, T2, T3, R> LifetimeFree for extern "system" fn(_: T1, _: T2, _: T3) -> R

source§

impl<T1, T2, T3, T4> LifetimeFree for (T1, T2, T3, T4)

source§

impl<T1, T2, T3, T4, R> LifetimeFree for fn(_: T1, _: T2, _: T3, _: T4) -> R

source§

impl<T1, T2, T3, T4, R> LifetimeFree for extern "C" fn(_: T1, _: T2, _: T3, _: T4) -> R

source§

impl<T1, T2, T3, T4, R> LifetimeFree for extern "system" fn(_: T1, _: T2, _: T3, _: T4) -> R

source§

impl<T1, T2, T3, T4, T5> LifetimeFree for (T1, T2, T3, T4, T5)

source§

impl<T1, T2, T3, T4, T5, R> LifetimeFree for fn(_: T1, _: T2, _: T3, _: T4, _: T5) -> R

source§

impl<T1, T2, T3, T4, T5, R> LifetimeFree for extern "C" fn(_: T1, _: T2, _: T3, _: T4, _: T5) -> R

source§

impl<T1, T2, T3, T4, T5, R> LifetimeFree for extern "system" fn(_: T1, _: T2, _: T3, _: T4, _: T5) -> R

source§

impl<T1, T2, T3, T4, T5, T6> LifetimeFree for (T1, T2, T3, T4, T5, T6)

source§

impl<T1, T2, T3, T4, T5, T6, R> LifetimeFree for fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6) -> R

source§

impl<T1, T2, T3, T4, T5, T6, R> LifetimeFree for extern "C" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6) -> R

source§

impl<T1, T2, T3, T4, T5, T6, R> LifetimeFree for extern "system" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7> LifetimeFree for (T1, T2, T3, T4, T5, T6, T7)

source§

impl<T1, T2, T3, T4, T5, T6, T7, R> LifetimeFree for fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, R> LifetimeFree for extern "C" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, R> LifetimeFree for extern "system" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8> LifetimeFree for (T1, T2, T3, T4, T5, T6, T7, T8)

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, R> LifetimeFree for fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, R> LifetimeFree for extern "C" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, R> LifetimeFree for extern "system" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> LifetimeFree for (T1, T2, T3, T4, T5, T6, T7, T8, T9)

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, R> LifetimeFree for fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, R> LifetimeFree for extern "C" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, R> LifetimeFree for extern "system" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> LifetimeFree for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R> LifetimeFree for fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9, _: T10) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R> LifetimeFree for extern "C" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9, _: T10) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R> LifetimeFree for extern "system" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9, _: T10) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> LifetimeFree for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R> LifetimeFree for fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9, _: T10, _: T11) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R> LifetimeFree for extern "C" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9, _: T10, _: T11) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R> LifetimeFree for extern "system" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9, _: T10, _: T11) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> LifetimeFree for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R> LifetimeFree for fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9, _: T10, _: T11, _: T12) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R> LifetimeFree for extern "C" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9, _: T10, _: T11, _: T12) -> R

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R> LifetimeFree for extern "system" fn(_: T1, _: T2, _: T3, _: T4, _: T5, _: T6, _: T7, _: T8, _: T9, _: T10, _: T11, _: T12) -> R

source§

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

source§

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

source§

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

source§

impl<T> LifetimeFree for TrySendError<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for TryLockError<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

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

source§

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

source§

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

source§

impl<T> LifetimeFree for Box<T>
where T: ?Sized + LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for BinaryHeap<T>
where T: LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for IntoIter<T>
where T: LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for BTreeSet<T>
where T: LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for IntoIter<T>
where T: LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for LinkedList<T>
where T: LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for IntoIter<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for VecDeque<T>
where T: LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for Rc<T>
where T: ?Sized + LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for Weak<T>
where T: ?Sized + LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for Arc<T>
where T: ?Sized + LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for Weak<T>
where T: ?Sized + LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for IntoIter<T>
where T: LifetimeFree,

Available on crate feature alloc only.
source§

impl<T> LifetimeFree for Vec<T>
where T: LifetimeFree,

Available on crate feature alloc only.
source§

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

source§

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

source§

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

source§

impl<T> LifetimeFree for UnsafeCell<T>
where T: LifetimeFree,

source§

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

source§

impl<T> LifetimeFree for Pending<T>
where T: LifetimeFree,

source§

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

source§

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

source§

impl<T> LifetimeFree for Empty<T>
where T: LifetimeFree,

source§

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

source§

impl<T> LifetimeFree for ManuallyDrop<T>
where T: LifetimeFree,

source§

impl<T> LifetimeFree for Discriminant<T>
where T: LifetimeFree,

source§

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

source§

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

source§

impl<T> LifetimeFree for Range<T>
where T: LifetimeFree,

source§

impl<T> LifetimeFree for RangeFrom<T>
where T: LifetimeFree,

source§

impl<T> LifetimeFree for RangeInclusive<T>
where T: LifetimeFree,

source§

impl<T> LifetimeFree for RangeTo<T>
where T: LifetimeFree,

source§

impl<T> LifetimeFree for RangeToInclusive<T>
where T: LifetimeFree,

source§

impl<T> LifetimeFree for AssertUnwindSafe<T>
where T: LifetimeFree,

source§

impl<T> LifetimeFree for Pin<T>
where T: LifetimeFree,

source§

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

source§

impl<T> LifetimeFree for IntoIter<T>
where T: LifetimeFree,

source§

impl<T> LifetimeFree for IntoIter<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

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

Available on crate feature std only.
source§

impl<T> LifetimeFree for Take<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for IntoIter<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for Receiver<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for SendError<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for Sender<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for SyncSender<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for Mutex<T>
where T: ?Sized + LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for OnceLock<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for PoisonError<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for RwLock<T>
where T: ?Sized + LifetimeFree,

Available on crate feature std only.
source§

impl<T> LifetimeFree for JoinHandle<T>
where T: LifetimeFree,

Available on crate feature std only.
source§

impl<T, E> LifetimeFree for Result<T, E>

source§

impl<T, F> LifetimeFree for LazyCell<T, F>

source§

impl<T, F> LifetimeFree for Successors<T, F>

source§

impl<T, F> LifetimeFree for LazyLock<T, F>

Available on crate feature std only.
source§

impl<T, S> LifetimeFree for HashSet<T, S>

Available on crate feature std only.
source§

impl<T, U> LifetimeFree for Chain<T, U>

Available on crate feature std only.
source§

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

source§

impl<T, const N: usize> LifetimeFree for IntoIter<T, N>
where T: LifetimeFree,

source§

impl<W> LifetimeFree for BufWriter<W>
where W: ?Sized + LifetimeFree + Write,

Available on crate feature std only.
source§

impl<W> LifetimeFree for LineWriter<W>
where W: ?Sized + LifetimeFree + Write,

Available on crate feature std only.
source§

impl<W> LifetimeFree for IntoInnerError<W>
where W: LifetimeFree,

Available on crate feature std only.

Implementors§