Trackable

Trait Trackable 

Source
pub trait Trackable {
    type PathBuilder<P: Path<Out = Self>>: Deref<Target = P> + IntoPath<IntoPath = P>;
}
Expand description

Allow building Paths into parts of this data type.

Use #[derive(Trackable)] on structs or enums to implement this.

Required Associated Types§

Source

type PathBuilder<P: Path<Out = Self>>: Deref<Target = P> + IntoPath<IntoPath = P>

A PathBuilder object contains in itself a Path pointing to T. It has methods that let you “extend” that path to point to a smaller part of T: a field (if T is a struct), an entry (if T is a HashMap), etc.

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.

Implementations on Foreign Types§

Source§

impl Trackable for bool

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for char

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for f32

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for f64

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for i8

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for i16

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for i32

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for i64

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for i128

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for isize

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for str

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for u8

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for u16

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for u32

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for u64

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for u128

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for ()

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for usize

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl Trackable for String

Source§

type PathBuilder<P: Path<Out = Self>> = StringPathBuilder<P>

Source§

impl<'a> Trackable for &'a str

Source§

type PathBuilder<P: Path<Out = Self>> = LeafPathBuilder<P>

Source§

impl<K: Eq + Clone + Hash, V> Trackable for HashMap<K, V>

Source§

type PathBuilder<P: Path<Out = Self>> = HashMapPathBuilder<K, V, P>

Source§

impl<T0> Trackable for (T0,)
where T0: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, TrackParent>

Source§

impl<T0, T1> Trackable for (T0, T1)
where T0: Trackable, T1: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, TrackParent>

Source§

impl<T0, T1, T2> Trackable for (T0, T1, T2)
where T0: Trackable, T1: Trackable, T2: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, T2, TrackParent>

Source§

impl<T0, T1, T2, T3> Trackable for (T0, T1, T2, T3)
where T0: Trackable, T1: Trackable, T2: Trackable, T3: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, T2, T3, TrackParent>

Source§

impl<T0, T1, T2, T3, T4> Trackable for (T0, T1, T2, T3, T4)
where T0: Trackable, T1: Trackable, T2: Trackable, T3: Trackable, T4: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, T2, T3, T4, TrackParent>

Source§

impl<T0, T1, T2, T3, T4, T5> Trackable for (T0, T1, T2, T3, T4, T5)
where T0: Trackable, T1: Trackable, T2: Trackable, T3: Trackable, T4: Trackable, T5: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, T2, T3, T4, T5, TrackParent>

Source§

impl<T0, T1, T2, T3, T4, T5, T6> Trackable for (T0, T1, T2, T3, T4, T5, T6)
where T0: Trackable, T1: Trackable, T2: Trackable, T3: Trackable, T4: Trackable, T5: Trackable, T6: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, T2, T3, T4, T5, T6, TrackParent>

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> Trackable for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: Trackable, T1: Trackable, T2: Trackable, T3: Trackable, T4: Trackable, T5: Trackable, T6: Trackable, T7: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, T2, T3, T4, T5, T6, T7, TrackParent>

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Trackable for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: Trackable, T1: Trackable, T2: Trackable, T3: Trackable, T4: Trackable, T5: Trackable, T6: Trackable, T7: Trackable, T8: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, T2, T3, T4, T5, T6, T7, T8, TrackParent>

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Trackable for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: Trackable, T1: Trackable, T2: Trackable, T3: Trackable, T4: Trackable, T5: Trackable, T6: Trackable, T7: Trackable, T8: Trackable, T9: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, TrackParent>

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Trackable for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: Trackable, T1: Trackable, T2: Trackable, T3: Trackable, T4: Trackable, T5: Trackable, T6: Trackable, T7: Trackable, T8: Trackable, T9: Trackable, T10: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TrackParent>

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Trackable for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T0: Trackable, T1: Trackable, T2: Trackable, T3: Trackable, T4: Trackable, T5: Trackable, T6: Trackable, T7: Trackable, T8: Trackable, T9: Trackable, T10: Trackable, T11: Trackable,

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitatorPathBuilder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TrackParent>

Source§

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

Source§

type PathBuilder<TrackParent: Path<Out = Self>> = ImitateOptionPathBuilder<T, TrackParent>

Source§

impl<T> Trackable for Vec<T>

Source§

type PathBuilder<P: Path<Out = Self>> = VecPathBuilder<T, P>

Source§

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

Source§

type PathBuilder<P: Path<Out = Self>> = BoxPathBuilder<T, P>

Source§

impl<T: Trackable> Trackable for Rc<T>

Source§

type PathBuilder<P: Path<Out = Self>> = RcPathBuilder<T, P>

Implementors§