pub trait Tag:
Sized
+ Tagged<DefaultGroup, Tag = Self>
+ 'static {
type NeededLifetimes: HoleList;
}Expand description
A tag for a type.
Tags can be for types with an arbitrary number of lifetimes.
The number of lifetimes in the tagged type is described by the
Tag::NeededLifetimes associated type.
For a tag to be complete, it needs to implement WithLt which defines
which type the tag is for. Once a tag implements both Tag and WithLt
then it will also implement Reify which can be used to reify the tag into
the type it is for.
Tags are also required to tag themselves within the DefaultGroup group.
This requirement allows for some extra ergonomics.
Required Associated Types§
Sourcetype NeededLifetimes: HoleList
type NeededLifetimes: HoleList
The needed lifetimes by the tagged type.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
Source§impl Tag for Layout
Available on crate feature alloc and (crate features core or alloc or std) only.
impl Tag for Layout
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for CString
Available on crate feature alloc and (crate features core or alloc or std) only.
impl Tag for CString
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for String
Available on crate feature alloc and (crate features core or alloc or std) only.
impl Tag for String
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for Ordering
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for Ordering
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for Infallible
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for Infallible
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for PhantomPinned
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for PhantomPinned
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for RangeFull
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for RangeFull
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for Bool
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for Bool
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for Char
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for Char
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for F32
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for F32
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for F64
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for F64
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for I8
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for I8
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for I16
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for I16
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for I32
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for I32
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for I64
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for I64
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for I128
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for I128
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for Isize
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for Isize
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for Str
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for Str
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for Tuple0
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for Tuple0
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for U8
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for U8
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for U16
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for U16
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for U32
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for U32
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for U64
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for U64
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for U128
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for U128
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl Tag for Usize
Available on crate feature core and (crate features core or alloc or std) only.
impl Tag for Usize
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Nil
Source§impl<A: ?Sized + Tag> Tag for Tuple1<A>
Available on crate feature core and (crate features core or alloc or std) only.
impl<A: ?Sized + Tag> Tag for Tuple1<A>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <A as Tag>::NeededLifetimes
Source§impl<A: ?Sized + Tag, B: ?Sized + Tag> Tag for Tuple2<A, B>
Available on crate feature core and (crate features core or alloc or std) only.
impl<A: ?Sized + Tag, B: ?Sized + Tag> Tag for Tuple2<A, B>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <(<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes) as Longest>::Output
Source§impl<A: ?Sized + Tag, B: ?Sized + Tag, C: ?Sized + Tag> Tag for Tuple3<A, B, C>where
(<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes, <C as Tag>::NeededLifetimes): Longest<Output: HoleList>,
Available on crate feature core and (crate features core or alloc or std) only.
impl<A: ?Sized + Tag, B: ?Sized + Tag, C: ?Sized + Tag> Tag for Tuple3<A, B, C>where
(<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes, <C as Tag>::NeededLifetimes): Longest<Output: HoleList>,
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <(<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes, <C as Tag>::NeededLifetimes) as Longest>::Output
Source§impl<A: ?Sized + Tag, B: ?Sized + Tag, C: ?Sized + Tag, R: ?Sized + Tag> Tag for Fn3<A, B, C, R>where
(<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes, <C as Tag>::NeededLifetimes, <R as Tag>::NeededLifetimes): Longest<Output: HoleList>,
Available on crate feature core and (crate features core or alloc or std) only.
impl<A: ?Sized + Tag, B: ?Sized + Tag, C: ?Sized + Tag, R: ?Sized + Tag> Tag for Fn3<A, B, C, R>where
(<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes, <C as Tag>::NeededLifetimes, <R as Tag>::NeededLifetimes): Longest<Output: HoleList>,
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <(<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes, <C as Tag>::NeededLifetimes, <R as Tag>::NeededLifetimes) as Longest>::Output
Source§impl<A: ?Sized + Tag, B: ?Sized + Tag, R: ?Sized + Tag> Tag for Fn2<A, B, R>where
(<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes, <R as Tag>::NeededLifetimes): Longest<Output: HoleList>,
Available on crate feature core and (crate features core or alloc or std) only.
impl<A: ?Sized + Tag, B: ?Sized + Tag, R: ?Sized + Tag> Tag for Fn2<A, B, R>where
(<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes, <R as Tag>::NeededLifetimes): Longest<Output: HoleList>,
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <(<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes, <R as Tag>::NeededLifetimes) as Longest>::Output
Source§impl<A: ?Sized + Tag, R: ?Sized + Tag> Tag for Fn1<A, R>
Available on crate feature core and (crate features core or alloc or std) only.
impl<A: ?Sized + Tag, R: ?Sized + Tag> Tag for Fn1<A, R>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <(<A as Tag>::NeededLifetimes, <R as Tag>::NeededLifetimes) as Longest>::Output
Source§impl<B: ?Sized + Tag, C: ?Sized + Tag> Tag for ControlFlow<B, C>
Available on crate feature core and (crate features core or alloc or std) only.
impl<B: ?Sized + Tag, C: ?Sized + Tag> Tag for ControlFlow<B, C>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <(<B as Tag>::NeededLifetimes, <C as Tag>::NeededLifetimes) as Longest>::Output
Source§impl<Idx: ?Sized + Tag> Tag for Range<Idx>
Available on crate feature core and (crate features core or alloc or std) only.
impl<Idx: ?Sized + Tag> Tag for Range<Idx>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <Idx as Tag>::NeededLifetimes
Source§impl<Idx: ?Sized + Tag> Tag for RangeFrom<Idx>
Available on crate feature core and (crate features core or alloc or std) only.
impl<Idx: ?Sized + Tag> Tag for RangeFrom<Idx>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <Idx as Tag>::NeededLifetimes
Source§impl<Idx: ?Sized + Tag> Tag for RangeInclusive<Idx>
Available on crate feature core and (crate features core or alloc or std) only.
impl<Idx: ?Sized + Tag> Tag for RangeInclusive<Idx>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <Idx as Tag>::NeededLifetimes
Source§impl<Idx: ?Sized + Tag> Tag for RangeTo<Idx>
Available on crate feature core and (crate features core or alloc or std) only.
impl<Idx: ?Sized + Tag> Tag for RangeTo<Idx>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <Idx as Tag>::NeededLifetimes
Source§impl<Idx: ?Sized + Tag> Tag for RangeToInclusive<Idx>
Available on crate feature core and (crate features core or alloc or std) only.
impl<Idx: ?Sized + Tag> Tag for RangeToInclusive<Idx>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <Idx as Tag>::NeededLifetimes
Source§impl<K: ?Sized + Tag, V: ?Sized + Tag> Tag for BTreeMap<K, V>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<K: ?Sized + Tag, V: ?Sized + Tag> Tag for BTreeMap<K, V>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <(<K as Tag>::NeededLifetimes, <V as Tag>::NeededLifetimes) as Longest>::Output
Source§impl<Ptr: ?Sized + Tag> Tag for Pin<Ptr>
Available on crate feature core and (crate features core or alloc or std) only.
impl<Ptr: ?Sized + Tag> Tag for Pin<Ptr>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <Ptr as Tag>::NeededLifetimes
Source§impl<R: ?Sized + Tag> Tag for Fn0<R>
Available on crate feature core and (crate features core or alloc or std) only.
impl<R: ?Sized + Tag> Tag for Fn0<R>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <R as Tag>::NeededLifetimes
Source§impl<T: Tag> Tag for AddLt<T>
impl<T: Tag> Tag for AddLt<T>
type NeededLifetimes = Cons<Hole, <T as Tag>::NeededLifetimes>
Source§impl<T: Tag> Tag for RepeatLt<T>
impl<T: Tag> Tag for RepeatLt<T>
type NeededLifetimes = <<T as Tag>::NeededLifetimes as HoleList>::HoleTail
Source§impl<T: ?Sized + Tag> Tag for Cow<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Cow<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = Cons<Hole, <T as Tag>::NeededLifetimes>
Source§impl<T: ?Sized + Tag> Tag for Box<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Box<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for BTreeSet<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for BTreeSet<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for BinaryHeap<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for BinaryHeap<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for LinkedList<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for LinkedList<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for VecDeque<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for VecDeque<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for Rc<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Rc<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for ty_tag::external_tags::alloc::rc::Weak<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for ty_tag::external_tags::alloc::rc::Weak<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for Arc<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Arc<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for ty_tag::external_tags::alloc::sync::Weak<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for ty_tag::external_tags::alloc::sync::Weak<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for Vec<T>
Available on crate feature alloc and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Vec<T>
Available on crate feature
alloc and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for Cell<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Cell<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for LazyCell<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for LazyCell<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for OnceCell<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for OnceCell<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for RefCell<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for RefCell<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for UnsafeCell<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for UnsafeCell<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for PhantomData<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for PhantomData<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for ManuallyDrop<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for ManuallyDrop<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for MaybeUninit<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for MaybeUninit<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for Bound<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Bound<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for Option<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Option<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for NonNull<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for NonNull<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for Ptr<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Ptr<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for PtrMut<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for PtrMut<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = <T as Tag>::NeededLifetimes
Source§impl<T: ?Sized + Tag> Tag for Ref<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Ref<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Cons<Hole, <T as Tag>::NeededLifetimes>
Source§impl<T: ?Sized + Tag> Tag for RefMut<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for RefMut<T>
Available on crate feature
core and (crate features core or alloc or std) only.type NeededLifetimes = Cons<Hole, <T as Tag>::NeededLifetimes>
Source§impl<T: ?Sized + Tag> Tag for Slice<T>
Available on crate feature core and (crate features core or alloc or std) only.
impl<T: ?Sized + Tag> Tag for Slice<T>
Available on crate feature
core and (crate features core or alloc or std) only.