~/bend-docscommunity

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.

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.

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