MRTKABARGGOWA764OGWFHMD26U5SHQCWBRXPZDC4HDCQ2I4RPT3QC // There are three classes of behaviour, depending on whether the segment is the first, mid, or// last, so we classify these on construction./// A KeyPath it used to follow keys into a keytree.
/// A `KeyPath` is used to follow keys into a keytree. Think of `KeyPath` as an iterator with a/// double window looking into a (parent segment, child segment).
// A Token represents a parsed line of a keytree string. It contains a pointer to its `next`// sibling. A `KeyValue` token contains a `Vec` of its children, the first value of the tuple is// the child token's key. The second value is the tokens index in the `KeyTree` struct. The `line`// field locates the error in the original keytree string and is passed on to errors.