Parse a browser pathname into a workspace plus an ordered chain of pairs, against a
caller-supplied key table.
Grammar: /<anchor>/<workspace>( /<pair> )* where the leading pair must be an anchor key (a key with
anchor: true in the table, conventionally w), and pair is either another anchor pair
<anchor>/<workspace> (rebases the base for subsequent ids) or <prefix>[/<id>] (a registered key,
consuming an id iff hasId).
Returns Option.none() for anything that doesn't fit the grammar: a leading key that is not a
registered anchor, an unregistered key, a hasId key missing its id, or a dangling anchor with no
following workspace segment. Callers route a none to a not-found page.
Parse a browser pathname into a workspace plus an ordered chain of pairs, against a caller-supplied key table.
Grammar:
/<anchor>/<workspace>( /<pair> )*where the leading pair must be an anchor key (a key withanchor: truein the table, conventionallyw), andpairis either another anchor pair<anchor>/<workspace>(rebases the base for subsequent ids) or<prefix>[/<id>](a registered key, consuming an id iffhasId).Returns
Option.none()for anything that doesn't fit the grammar: a leading key that is not a registered anchor, an unregistered key, ahasIdkey missing its id, or a dangling anchor with no following workspace segment. Callers route anoneto a not-found page.