Routing trie keyed by HTTP method, then by path segments. Literals are matched first, then dynamic segments in priority order (int > long > uuid > bool > string > combined > trailing). HEAD requests fall back to GET handlers. Merge prefers right-hand-side values on conflict.
Trailing fallback: when the path segments are exhausted at a level with no exact value, lookup falls through to a Trailing branch below that level — so a trailing route also matches its own prefix path (a /assets/... route matches /assets), and it shadows a missing exact match at that level. This is intentional (a trailing route is a prefix catch-all by design): register exact routes alongside trailing ones when both must coexist. Literals are still tried first at every level that has segments left, and per-branch matching itself never allocates (see SegmentCodec.matches).
Attributes
- Companion
- object
- Source
- RouteTree.scala
- Graph
-
- Supertypes
- Self type
-
RouteTree[A]