Router.best: def of bend-kit-router@0.2.0.0
Import: import bend-kit-router@0.2.0.0/router.bend as Router
Lines 316-322 of bend-kit-router@0.2.0.0/router.bend: https://jend.leeeet.dev/read.txt?path=bend-kit-router@0.2.0.0/router.bend&start_line=316&end_line=322
import Base
# ponytail: lookup scans prepared paths in O(routes × segments); use a trie if measured dispatch cost warrants it.
def best(~A: Data, paths: List<&2, Path>, +segments: List<&2, String>, acc: Maybe<&2, Path>) -> Maybe<&2, Path>:
match paths:
case Nil{}:
acc
case Path{+ss, handlers, groups, allowed} <> t:
best(~A, t, segments, best.step(~A, matches(ss, segments), Path{ss, handlers, groups, allowed}, acc))
Uses (6):
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String
https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Path
https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=best.step
https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=matches