pub unsafe trait LifetimeFree: 'static { }Expand description
A marker trait for types that do not contain any lifetime parameters.
Such types are safe to specialize 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 stillFirst<'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 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 in 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§
impl LifetimeFree for Ordering
impl LifetimeFree for Infallible
impl LifetimeFree for c_void
impl LifetimeFree for Alignment
impl LifetimeFree for IpAddr
impl LifetimeFree for SocketAddr
impl LifetimeFree for FpCategory
impl LifetimeFree for IntErrorKind
impl LifetimeFree for Ordering
impl LifetimeFree for BacktraceStatus
std only.impl LifetimeFree for VarError
std only.impl LifetimeFree for SeekFrom
std only.impl LifetimeFree for ErrorKind
std only.impl LifetimeFree for Shutdown
std only.impl LifetimeFree for RecvTimeoutError
std only.impl LifetimeFree for TryRecvError
std only.impl LifetimeFree for bool
impl LifetimeFree for char
impl LifetimeFree for f32
impl LifetimeFree for f64
impl LifetimeFree for i8
impl LifetimeFree for i16
impl LifetimeFree for i32
impl LifetimeFree for i64
impl LifetimeFree for i128
impl LifetimeFree for isize
impl LifetimeFree for str
impl LifetimeFree for u8
impl LifetimeFree for u16
impl LifetimeFree for u32
impl LifetimeFree for u64
impl LifetimeFree for u128
impl LifetimeFree for ()
impl LifetimeFree for usize
impl LifetimeFree for TryReserveError
alloc only.impl LifetimeFree for CString
alloc only.impl LifetimeFree for FromUtf8Error
alloc only.impl LifetimeFree for FromUtf16Error
alloc only.impl LifetimeFree for String
alloc only.impl LifetimeFree for Layout
impl LifetimeFree for LayoutError
impl LifetimeFree for TypeId
impl LifetimeFree for TryFromSliceError
impl LifetimeFree for EscapeDefault
impl LifetimeFree for BorrowError
impl LifetimeFree for BorrowMutError
impl LifetimeFree for CharTryFromError
impl LifetimeFree for ParseCharError
impl LifetimeFree for DecodeUtf16Error
impl LifetimeFree for EscapeDebug
impl LifetimeFree for EscapeDefault
impl LifetimeFree for EscapeUnicode
impl LifetimeFree for ToLowercase
impl LifetimeFree for ToUppercase
impl LifetimeFree for TryFromCharError
impl LifetimeFree for CpuidResult
impl LifetimeFree for __m128
impl LifetimeFree for __m128d
impl LifetimeFree for __m128i
impl LifetimeFree for __m256
impl LifetimeFree for __m256d
impl LifetimeFree for __m256i
impl LifetimeFree for __m512
impl LifetimeFree for __m512d
impl LifetimeFree for __m512i
impl LifetimeFree for CStr
impl LifetimeFree for Error
impl LifetimeFree for PhantomPinned
impl LifetimeFree for Ipv4Addr
impl LifetimeFree for Ipv6Addr
impl LifetimeFree for AddrParseError
impl LifetimeFree for SocketAddrV4
impl LifetimeFree for SocketAddrV6
impl LifetimeFree for ParseFloatError
impl LifetimeFree for ParseIntError
impl LifetimeFree for TryFromIntError
impl LifetimeFree for RangeFull
impl LifetimeFree for ParseBoolError
impl LifetimeFree for Utf8Error
impl LifetimeFree for AtomicBool
impl LifetimeFree for AtomicI8
impl LifetimeFree for AtomicI16
impl LifetimeFree for AtomicI32
impl LifetimeFree for AtomicI64
impl LifetimeFree for AtomicIsize
impl LifetimeFree for AtomicU8
impl LifetimeFree for AtomicU16
impl LifetimeFree for AtomicU32
impl LifetimeFree for AtomicU64
impl LifetimeFree for AtomicUsize
impl LifetimeFree for RawWaker
impl LifetimeFree for RawWakerVTable
impl LifetimeFree for Waker
impl LifetimeFree for Duration
impl LifetimeFree for TryFromFloatSecsError
impl LifetimeFree for System
std only.impl LifetimeFree for Backtrace
std only.impl LifetimeFree for Args
std only.impl LifetimeFree for ArgsOs
std only.impl LifetimeFree for JoinPathsError
std only.impl LifetimeFree for Vars
std only.impl LifetimeFree for VarsOs
std only.impl LifetimeFree for OsStr
std only.impl LifetimeFree for OsString
std only.impl LifetimeFree for DirBuilder
std only.impl LifetimeFree for DirEntry
std only.impl LifetimeFree for File
std only.impl LifetimeFree for FileTimes
std only.impl LifetimeFree for FileType
std only.impl LifetimeFree for Metadata
std only.impl LifetimeFree for OpenOptions
std only.impl LifetimeFree for Permissions
std only.impl LifetimeFree for ReadDir
std only.impl LifetimeFree for DefaultHasher
std only.impl LifetimeFree for RandomState
std only.impl LifetimeFree for WriterPanicked
std only.impl LifetimeFree for Error
std only.impl LifetimeFree for Stderr
std only.impl LifetimeFree for Stdin
std only.impl LifetimeFree for Stdout
std only.impl LifetimeFree for Empty
std only.impl LifetimeFree for Repeat
std only.impl LifetimeFree for Sink
std only.impl LifetimeFree for TcpListener
std only.impl LifetimeFree for TcpStream
std only.impl LifetimeFree for UdpSocket
std only.impl LifetimeFree for OwnedFd
std and (Unix or HermitCore or WASI) only.impl LifetimeFree for SocketAddr
std and Unix only.impl LifetimeFree for UnixDatagram
std and Unix only.impl LifetimeFree for UnixListener
std and Unix only.impl LifetimeFree for UnixStream
std and Unix only.impl LifetimeFree for Path
std only.impl LifetimeFree for PathBuf
std only.impl LifetimeFree for StripPrefixError
std only.impl LifetimeFree for Child
std only.impl LifetimeFree for ChildStderr
std only.impl LifetimeFree for ChildStdin
std only.impl LifetimeFree for ChildStdout
std only.impl LifetimeFree for Command
std only.impl LifetimeFree for ExitCode
std only.impl LifetimeFree for ExitStatus
std only.impl LifetimeFree for Output
std only.impl LifetimeFree for Stdio
std only.impl LifetimeFree for Barrier
std only.impl LifetimeFree for BarrierWaitResult
std only.impl LifetimeFree for RecvError
std only.impl LifetimeFree for Condvar
std only.impl LifetimeFree for Once
std only.impl LifetimeFree for OnceState
std only.impl LifetimeFree for WaitTimeoutResult
std only.impl LifetimeFree for AccessError
std only.impl LifetimeFree for Builder
std only.impl LifetimeFree for Thread
std only.impl LifetimeFree for ThreadId
std only.impl LifetimeFree for Instant
std only.impl LifetimeFree for SystemTime
std only.impl LifetimeFree for SystemTimeError
std only.impl LifetimeFree for NonZeroI8
impl LifetimeFree for NonZeroI16
impl LifetimeFree for NonZeroI32
impl LifetimeFree for NonZeroI64
impl LifetimeFree for NonZeroI128
impl LifetimeFree for NonZeroIsize
impl LifetimeFree for NonZeroU8
impl LifetimeFree for NonZeroU16
impl LifetimeFree for NonZeroU32
impl LifetimeFree for NonZeroU64
impl LifetimeFree for NonZeroU128
impl LifetimeFree for NonZeroUsize
impl<A> LifetimeFree for Repeat<A>where
A: LifetimeFree,
impl<A> LifetimeFree for IntoIter<A>where
A: LifetimeFree,
impl<A, B> LifetimeFree for Chain<A, B>where
A: LifetimeFree,
B: LifetimeFree,
impl<A, B> LifetimeFree for Zip<A, B>where
A: LifetimeFree,
B: LifetimeFree,
impl<B> LifetimeFree for Lines<B>where
B: LifetimeFree,
std only.impl<B> LifetimeFree for Split<B>where
B: LifetimeFree,
std only.impl<B, C> LifetimeFree for ControlFlow<B, C>where
B: LifetimeFree,
C: LifetimeFree,
impl<F> LifetimeFree for PollFn<F>where
F: LifetimeFree,
impl<F> LifetimeFree for FromFn<F>where
F: LifetimeFree,
impl<F> LifetimeFree for OnceWith<F>where
F: LifetimeFree,
impl<F> LifetimeFree for RepeatWith<F>where
F: LifetimeFree,
impl<H> LifetimeFree for BuildHasherDefault<H>where
H: LifetimeFree,
impl<I> LifetimeFree for DecodeUtf16<I>
impl<I> LifetimeFree for Cloned<I>where
I: LifetimeFree,
impl<I> LifetimeFree for Copied<I>where
I: LifetimeFree,
impl<I> LifetimeFree for Cycle<I>where
I: LifetimeFree,
impl<I> LifetimeFree for Enumerate<I>where
I: LifetimeFree,
impl<I> LifetimeFree for Flatten<I>
impl<I> LifetimeFree for Fuse<I>where
I: LifetimeFree,
impl<I> LifetimeFree for Peekable<I>where
I: LifetimeFree + Iterator,
impl<I> LifetimeFree for Skip<I>where
I: LifetimeFree,
impl<I> LifetimeFree for StepBy<I>where
I: LifetimeFree,
impl<I> LifetimeFree for Take<I>where
I: LifetimeFree,
impl<I, F> LifetimeFree for FilterMap<I, F>where
I: LifetimeFree,
F: LifetimeFree,
impl<I, F> LifetimeFree for Inspect<I, F>where
I: LifetimeFree,
F: LifetimeFree,
impl<I, F> LifetimeFree for Map<I, F>where
I: LifetimeFree,
F: LifetimeFree,
impl<I, F> LifetimeFree for MapWhile<I, F>where
I: LifetimeFree,
F: LifetimeFree,
impl<I, P> LifetimeFree for Filter<I, P>where
I: LifetimeFree,
P: LifetimeFree,
impl<I, P> LifetimeFree for SkipWhile<I, P>where
I: LifetimeFree,
P: LifetimeFree,
impl<I, P> LifetimeFree for TakeWhile<I, P>where
I: LifetimeFree,
P: LifetimeFree,
impl<I, St, F> LifetimeFree for Scan<I, St, F>
impl<I, U, F> LifetimeFree for FlatMap<I, U, F>
impl<K, V> LifetimeFree for BTreeMap<K, V>where
K: LifetimeFree,
V: LifetimeFree,
alloc only.impl<K, V> LifetimeFree for IntoIter<K, V>where
K: LifetimeFree,
V: LifetimeFree,
alloc only.impl<K, V> LifetimeFree for IntoKeys<K, V>where
K: LifetimeFree,
V: LifetimeFree,
alloc only.impl<K, V> LifetimeFree for IntoValues<K, V>where
K: LifetimeFree,
V: LifetimeFree,
alloc only.impl<K, V> LifetimeFree for IntoIter<K, V>where
K: LifetimeFree,
V: LifetimeFree,
std only.impl<K, V> LifetimeFree for IntoKeys<K, V>where
K: LifetimeFree,
V: LifetimeFree,
std only.impl<K, V> LifetimeFree for IntoValues<K, V>where
K: LifetimeFree,
V: LifetimeFree,
std only.impl<K, V, S> LifetimeFree for HashMap<K, V, S>
std only.impl<R> LifetimeFree for fn() -> Rwhere
R: LifetimeFree,
impl<R> LifetimeFree for BufReader<R>where
R: ?Sized + LifetimeFree,
std only.impl<R> LifetimeFree for Bytes<R>where
R: LifetimeFree,
std only.impl<R> LifetimeFree for extern "C" fn() -> Rwhere
R: LifetimeFree,
impl<R> LifetimeFree for extern "system" fn() -> Rwhere
R: LifetimeFree,
impl<T1> LifetimeFree for (T1,)where
T1: LifetimeFree,
impl<T1, R> LifetimeFree for fn(T1) -> Rwhere
T1: LifetimeFree,
R: LifetimeFree,
impl<T1, R> LifetimeFree for extern "C" fn(T1) -> Rwhere
T1: LifetimeFree,
R: LifetimeFree,
impl<T1, R> LifetimeFree for extern "system" fn(T1) -> Rwhere
T1: LifetimeFree,
R: LifetimeFree,
impl<T1, T2> LifetimeFree for (T1, T2)where
T1: LifetimeFree,
T2: LifetimeFree,
impl<T1, T2, R> LifetimeFree for fn(T1, T2) -> R
impl<T1, T2, R> LifetimeFree for extern "C" fn(T1, T2) -> R
impl<T1, T2, R> LifetimeFree for extern "system" fn(T1, T2) -> R
impl<T1, T2, T3> LifetimeFree for (T1, T2, T3)
impl<T1, T2, T3, R> LifetimeFree for fn(T1, T2, T3) -> R
impl<T1, T2, T3, R> LifetimeFree for extern "C" fn(T1, T2, T3) -> R
impl<T1, T2, T3, R> LifetimeFree for extern "system" fn(T1, T2, T3) -> R
impl<T1, T2, T3, T4> LifetimeFree for (T1, T2, T3, T4)
impl<T1, T2, T3, T4, R> LifetimeFree for fn(T1, T2, T3, T4) -> R
impl<T1, T2, T3, T4, R> LifetimeFree for extern "C" fn(T1, T2, T3, T4) -> R
impl<T1, T2, T3, T4, R> LifetimeFree for extern "system" fn(T1, T2, T3, T4) -> R
impl<T1, T2, T3, T4, T5> LifetimeFree for (T1, T2, T3, T4, T5)
impl<T1, T2, T3, T4, T5, R> LifetimeFree for fn(T1, T2, T3, T4, T5) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, R> LifetimeFree for extern "C" fn(T1, T2, T3, T4, T5) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, R> LifetimeFree for extern "system" fn(T1, T2, T3, T4, T5) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6> LifetimeFree for (T1, T2, T3, T4, T5, T6)where
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, R> LifetimeFree for fn(T1, T2, T3, T4, T5, T6) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, R> LifetimeFree for extern "C" fn(T1, T2, T3, T4, T5, T6) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, R> LifetimeFree for extern "system" fn(T1, T2, T3, T4, T5, T6) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7> LifetimeFree for (T1, T2, T3, T4, T5, T6, T7)where
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7, R> LifetimeFree for fn(T1, T2, T3, T4, T5, T6, T7) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7, R> LifetimeFree for extern "C" fn(T1, T2, T3, T4, T5, T6, T7) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7, R> LifetimeFree for extern "system" fn(T1, T2, T3, T4, T5, T6, T7) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7, T8> LifetimeFree for (T1, T2, T3, T4, T5, T6, T7, T8)where
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7, T8, R> LifetimeFree for fn(T1, T2, T3, T4, T5, T6, T7, T8) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7, T8, R> LifetimeFree for extern "C" fn(T1, T2, T3, T4, T5, T6, T7, T8) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7, T8, R> LifetimeFree for extern "system" fn(T1, T2, T3, T4, T5, T6, T7, T8) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> LifetimeFree for (T1, T2, T3, T4, T5, T6, T7, T8, T9)where
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, R> LifetimeFree for fn(T1, T2, T3, T4, T5, T6, T7, T8, T9) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
R: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
R: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
R: LifetimeFree,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> LifetimeFree for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)where
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
R: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
R: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
R: LifetimeFree,
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)where
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
T11: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
T11: LifetimeFree,
R: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
T11: LifetimeFree,
R: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
T11: LifetimeFree,
R: LifetimeFree,
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)where
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
T11: LifetimeFree,
T12: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
T11: LifetimeFree,
T12: LifetimeFree,
R: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
T11: LifetimeFree,
T12: LifetimeFree,
R: LifetimeFree,
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) -> Rwhere
T1: LifetimeFree,
T2: LifetimeFree,
T3: LifetimeFree,
T4: LifetimeFree,
T5: LifetimeFree,
T6: LifetimeFree,
T7: LifetimeFree,
T8: LifetimeFree,
T9: LifetimeFree,
T10: LifetimeFree,
T11: LifetimeFree,
T12: LifetimeFree,
R: LifetimeFree,
impl<T> LifetimeFree for Bound<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Option<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Poll<T>where
T: LifetimeFree,
impl<T> LifetimeFree for TrySendError<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for TryLockError<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for *const Twhere
T: ?Sized + LifetimeFree,
impl<T> LifetimeFree for *mut Twhere
T: ?Sized + LifetimeFree,
impl<T> LifetimeFree for [T]where
T: LifetimeFree,
impl<T> LifetimeFree for Box<T>where
T: ?Sized + LifetimeFree,
alloc only.impl<T> LifetimeFree for BinaryHeap<T>where
T: LifetimeFree,
alloc only.impl<T> LifetimeFree for IntoIter<T>where
T: LifetimeFree,
alloc only.impl<T> LifetimeFree for BTreeSet<T>where
T: LifetimeFree,
alloc only.impl<T> LifetimeFree for IntoIter<T>where
T: LifetimeFree,
alloc only.impl<T> LifetimeFree for LinkedList<T>where
T: LifetimeFree,
alloc only.impl<T> LifetimeFree for IntoIter<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for VecDeque<T>where
T: LifetimeFree,
alloc only.impl<T> LifetimeFree for Rc<T>where
T: ?Sized + LifetimeFree,
alloc only.impl<T> LifetimeFree for Weak<T>where
T: ?Sized + LifetimeFree,
alloc only.impl<T> LifetimeFree for Arc<T>where
T: ?Sized + LifetimeFree,
alloc only.impl<T> LifetimeFree for Weak<T>where
T: ?Sized + LifetimeFree,
alloc only.impl<T> LifetimeFree for IntoIter<T>where
T: LifetimeFree,
alloc only.impl<T> LifetimeFree for Vec<T>where
T: LifetimeFree,
alloc only.impl<T> LifetimeFree for OnceCell<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Cell<T>where
T: ?Sized + LifetimeFree,
impl<T> LifetimeFree for RefCell<T>where
T: ?Sized + LifetimeFree,
impl<T> LifetimeFree for UnsafeCell<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Reverse<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Pending<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Ready<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Rev<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Empty<T>where
T: LifetimeFree,
impl<T> LifetimeFree for PhantomData<T>where
T: ?Sized + LifetimeFree,
impl<T> LifetimeFree for ManuallyDrop<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Discriminant<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Saturating<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Wrapping<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Range<T>where
T: LifetimeFree,
impl<T> LifetimeFree for RangeFrom<T>where
T: LifetimeFree,
impl<T> LifetimeFree for RangeInclusive<T>where
T: LifetimeFree,
impl<T> LifetimeFree for RangeTo<T>where
T: LifetimeFree,
impl<T> LifetimeFree for RangeToInclusive<T>where
T: LifetimeFree,
impl<T> LifetimeFree for AssertUnwindSafe<T>where
T: LifetimeFree,
impl<T> LifetimeFree for Pin<T>where
T: LifetimeFree,
impl<T> LifetimeFree for NonNull<T>where
T: ?Sized + LifetimeFree,
impl<T> LifetimeFree for IntoIter<T>where
T: LifetimeFree,
impl<T> LifetimeFree for IntoIter<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for Cursor<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for Take<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for IntoIter<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for Receiver<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for SendError<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for Sender<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for SyncSender<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for OnceLock<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for Mutex<T>where
T: ?Sized + LifetimeFree,
std only.impl<T> LifetimeFree for RwLock<T>where
T: ?Sized + LifetimeFree,
std only.impl<T> LifetimeFree for PoisonError<T>where
T: LifetimeFree,
std only.impl<T> LifetimeFree for JoinHandle<T>where
T: LifetimeFree,
std only.impl<T, E> LifetimeFree for Result<T, E>where
T: LifetimeFree,
E: LifetimeFree,
impl<T, F> LifetimeFree for LazyCell<T, F>where
T: LifetimeFree,
F: LifetimeFree,
impl<T, F> LifetimeFree for Successors<T, F>where
T: LifetimeFree,
F: LifetimeFree,
impl<T, F> LifetimeFree for LazyLock<T, F>where
T: LifetimeFree,
F: LifetimeFree,
std only.impl<T, S> LifetimeFree for HashSet<T, S>where
T: LifetimeFree,
S: LifetimeFree,
std only.impl<T, U> LifetimeFree for Chain<T, U>where
T: LifetimeFree,
U: LifetimeFree,
std only.impl<T, const N: usize> LifetimeFree for [T; N]where
T: LifetimeFree,
impl<T, const N: usize> LifetimeFree for IntoIter<T, N>where
T: LifetimeFree,
impl<W> LifetimeFree for BufWriter<W>
std only.impl<W> LifetimeFree for LineWriter<W>
std only.impl<W> LifetimeFree for IntoInnerError<W>where
W: LifetimeFree,
std only.