Tag

Trait Tag 

Source
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§

Source

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.
Source§

impl Tag for CString

Available on crate feature alloc and (crate features core or alloc or std) only.
Source§

impl Tag for String

Available on crate feature alloc and (crate features core or alloc or std) only.
Source§

impl Tag for Ordering

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for Infallible

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for PhantomPinned

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for RangeFull

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for Bool

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for Char

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for F32

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for F64

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for I8

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for I16

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for I32

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for I64

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for I128

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for Isize

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for Str

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for Tuple0

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for U8

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for U16

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for U32

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for U64

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for U128

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl Tag for Usize

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<A: ?Sized + Tag> Tag for Tuple1<A>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<A: ?Sized + Tag, B: ?Sized + Tag> Tag for Tuple2<A, B>
where (<A as Tag>::NeededLifetimes, <B as Tag>::NeededLifetimes): Longest<Output: HoleList>,

Available on crate feature core and (crate features core or alloc or std) only.
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.
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.
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.
Source§

impl<A: ?Sized + Tag, R: ?Sized + Tag> Tag for Fn1<A, R>
where (<A as Tag>::NeededLifetimes, <R as Tag>::NeededLifetimes): Longest<Output: HoleList>,

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<B: ?Sized + Tag, C: ?Sized + Tag> Tag for ControlFlow<B, C>
where (<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.
Source§

impl<Idx: ?Sized + Tag> Tag for Range<Idx>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<Idx: ?Sized + Tag> Tag for RangeFrom<Idx>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<Idx: ?Sized + Tag> Tag for RangeInclusive<Idx>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<Idx: ?Sized + Tag> Tag for RangeTo<Idx>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<Idx: ?Sized + Tag> Tag for RangeToInclusive<Idx>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<K: ?Sized + Tag, V: ?Sized + Tag> Tag for BTreeMap<K, V>
where (<K as Tag>::NeededLifetimes, <V as Tag>::NeededLifetimes): Longest<Output: HoleList>,

Available on crate feature alloc and (crate features core or alloc or std) only.
Source§

impl<Ptr: ?Sized + Tag> Tag for Pin<Ptr>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<R: ?Sized + Tag> Tag for Fn0<R>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: Tag> Tag for AddLt<T>

Source§

impl<T: Tag> Tag for RepeatLt<T>

Source§

impl<T: ?Sized + 'static> Tag for Owned<T>

Source§

impl<T: ?Sized + Tag> Tag for Cow<T>

Available on crate feature alloc and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for Box<T>

Available on crate feature alloc and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for BTreeSet<T>

Available on crate feature alloc and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for BinaryHeap<T>

Available on crate feature alloc and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for LinkedList<T>

Available on crate feature alloc and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for VecDeque<T>

Available on crate feature alloc and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for Rc<T>

Available on crate feature alloc and (crate features core or alloc or std) only.
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.
Source§

impl<T: ?Sized + Tag> Tag for Arc<T>

Available on crate feature alloc and (crate features core or alloc or std) only.
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.
Source§

impl<T: ?Sized + Tag> Tag for Vec<T>

Available on crate feature alloc and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for Cell<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for LazyCell<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for OnceCell<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for RefCell<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for UnsafeCell<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for PhantomData<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for ManuallyDrop<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for MaybeUninit<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for Bound<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for Option<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for NonNull<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for Ptr<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for PtrMut<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for Ref<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for RefMut<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag> Tag for Slice<T>

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag, E: ?Sized + Tag> Tag for Result<T, E>
where (<T as Tag>::NeededLifetimes, <E as Tag>::NeededLifetimes): Longest<Output: HoleList>,

Available on crate feature core and (crate features core or alloc or std) only.
Source§

impl<T: ?Sized + Tag, const N: usize> Tag for Array<T, N>

Available on crate feature core and (crate features core or alloc or std) only.