src/routing_spec.bend checks
raw source on the hub · import 0x36c893ade1f158581b4c8c34eb3b510e/src/routing_spec.bend as Routing_spec
2 imports
import Base import ./contracts.bend as C
Types
type Hit source · line 47 · raw
Data
Filter path matches, retaining table order and exact captured parameters.
Hit@route:0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Route -> @params:List<&2, 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Param> -> Hit
type First source · line 76 · raw
Data
Two separate observations define the public specification: the first method hit, and all path-hit methods deduplicated by their last occurrence.
Present@hit:Hit -> First
AbsentFirst
Definitions
def combine source · line 5 · raw
@first:0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Match -> @rest:0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Match -> 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Match
Independent pure specification; no implementation matching/selection helpers.
def exact source · line 11 · raw
@same:Bool -> 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Match
def parameter source · line 16 · raw
@ok:Bool -> @name:String -> @value:String -> 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Match
def nonempty source · line 21 · raw
@name:String -> @value:String -> Bool
def part_kind source · line 26 · raw
@is_parameter:Bool -> @head:Char -> @+name:String -> @+value:String -> 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Match
def part source · line 31 · raw
@pattern:String -> @+value:String -> 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Match
def segments source · line 37 · raw
@pattern:List<&2, String> -> @path:List<&2, String> -> 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Match
def path source · line 43 · raw
@pattern:String -> @value:String -> 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Match
def include source · line 50 · raw
@result:0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Match -> @route:0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Route -> @tail:List<&2, Hit> -> List<&2, Hit>
def hits source · line 55 · raw
@routes:List<&2, 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Route> -> @+value:String -> List<&2, Hit>
def member source · line 64 · raw
@+verb:String -> @methods:List<&2, String> -> Bool
Keep the last occurrence of each verb, without changing suffix order.
def retain source · line 69 · raw
@duplicate:Bool -> @verb:String -> @methods:List<&2, String> -> List<&2, String>
def first_step source · line 80 · raw
@same:Bool -> @hit:Hit -> @suffix:First -> First
def first source · line 85 · raw
@hits:List<&2, Hit> -> @+method:String -> First
def dedup_head source · line 93 · raw
@+verb:String -> @+suffix:List<&2, String> -> List<&2, String>
def verb source · line 96 · raw
@route:0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Route -> String
def allowed source · line 100 · raw
@hits:List<&2, Hit> -> List<&2, String>
def summary source · line 106 · raw
@first:First -> @methods:List<&2, String> -> 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Selection
def select source · line 114 · raw
@+routes:List<&2, 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Route> -> @+method:String -> @+value:String -> 0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Selection
def empty source · line 117 · raw
@hits:List<&2, Hit> -> Bool
def absent source · line 122 · raw
@first:First -> Bool
def missing source · line 127 · raw
@selection:0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Selection -> Bool
def wrong source · line 133 · raw
@selection:0x36c893ade1f158581b4c8c34eb3b510e/src/contracts.Selection -> Bool