HCons - Add a new element (of arbitrary type) to the front of the list.
HCons for parsers - includes an extra type parameter because we care about both the type we will parse as, as well as the type of the chain itself.
HCons for parsers - includes an extra type parameter because we care about both the type we will parse as, as well as the type of the chain itself.
The type the head of the chain will parse as.
The tail of the chain will parse as this type
All information needed to parse from a URL something of the type H
The rest of the parser chain.
A specialized HList with the minimal features required for our purposes.
A specialized HList with the minimal features required for our purposes.
Note, we use :::
for concatenation to separate ourselves from normal lists which use ::
.
An HList for parsers, usually built up automatically via the helper traits (TODO: FILL IN LINKS)
An HList for parsers, usually built up automatically via the helper traits (TODO: FILL IN LINKS)
The type this HList of parsers will parse a URL into.
Partially parses type T
from a URL.
HNil - the end of a ParsedPathKey.
The base / end of the PathKey HList-like datastructure.
Effectively an Option[(Option[String], T)] used for partially parsing URLs for PathKeys.
Effectively an Option[(Option[String], T)] used for partially parsing URLs for PathKeys.
The type we are supposed to parse from the url.
Indicates the request did not match / did not parse successfully.
HCons - Add a new element (of arbitrary type) to the front of the list.
The parsed element we are holding.
The rest of the HList.