usestd::ops::Deref;usecrate::path::Path;/// Allow building [Path]s into parts of this data type.
////// Use `#[derive(Trackable)]` on structs or enums to implement this.
pubtraitTrackable{/// 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.
typePathBuilder<P:Path<Out = Self>>:Deref<Target = P>+IntoPath<IntoPath = P>;#[doc(hidden)]fnnew_path_builder<P:Path<Out = Self>>(parent: P)->Self::PathBuilder<P>;}/// For converting a [PathBuilder][Trackable::PathBuilder] into the [Path] inside it.
pubtraitIntoPath{typeIntoPath;/// Get the Path inside the PathBuilder.
fninto_path(self)->Self::IntoPath;}