radiant/router
Router types, route registration, and dispatch.
Types
A middleware transforms a handler into a new handler.
pub type Middleware =
fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray)
A typed path parameter for use with get1, get2, and friends.
pub opaque type Param(a)
Values
pub fn any(
router: Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> Router
pub fn delete(
router: Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> Router
pub fn delete1(
router: Router,
pattern: String,
p1: Param(a),
handler: fn(request.Req, a) -> response.Response(BitArray),
) -> Router
pub fn delete2(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
handler: fn(request.Req, a, b) -> response.Response(BitArray),
) -> Router
pub fn delete3(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
handler: fn(request.Req, a, b, c) -> response.Response(BitArray),
) -> Router
pub fn delete4(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
handler: fn(request.Req, a, b, c, d) -> response.Response(
BitArray,
),
) -> Router
pub fn delete5(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
p5: Param(e),
handler: fn(request.Req, a, b, c, d, e) -> response.Response(
BitArray,
),
) -> Router
pub fn delete6(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
p5: Param(e),
p6: Param(f),
handler: fn(request.Req, a, b, c, d, e, f) -> response.Response(
BitArray,
),
) -> Router
pub fn fallback(
router: Router,
handler: fn(request.Req) -> response.Response(BitArray),
) -> Router
pub fn get(
router: Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> Router
pub fn get1(
router: Router,
pattern: String,
p1: Param(a),
handler: fn(request.Req, a) -> response.Response(BitArray),
) -> Router
pub fn get2(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
handler: fn(request.Req, a, b) -> response.Response(BitArray),
) -> Router
pub fn get3(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
handler: fn(request.Req, a, b, c) -> response.Response(BitArray),
) -> Router
pub fn get4(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
handler: fn(request.Req, a, b, c, d) -> response.Response(
BitArray,
),
) -> Router
pub fn get5(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
p5: Param(e),
handler: fn(request.Req, a, b, c, d, e) -> response.Response(
BitArray,
),
) -> Router
pub fn get6(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
p5: Param(e),
p6: Param(f),
handler: fn(request.Req, a, b, c, d, e, f) -> response.Response(
BitArray,
),
) -> Router
pub fn handle(
router: Router,
req: request.Request(BitArray),
) -> response.Response(BitArray)
pub fn handle_with(
router: Router,
req: request.Request(anything),
body: BitArray,
) -> response.Response(BitArray)
pub fn middleware(
router: Router,
mw: fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray),
) -> Router
pub fn options(
router: Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> Router
pub fn patch(
router: Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> Router
pub fn patch1(
router: Router,
pattern: String,
p1: Param(a),
handler: fn(request.Req, a) -> response.Response(BitArray),
) -> Router
pub fn patch2(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
handler: fn(request.Req, a, b) -> response.Response(BitArray),
) -> Router
pub fn patch3(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
handler: fn(request.Req, a, b, c) -> response.Response(BitArray),
) -> Router
pub fn patch4(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
handler: fn(request.Req, a, b, c, d) -> response.Response(
BitArray,
),
) -> Router
pub fn patch5(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
p5: Param(e),
handler: fn(request.Req, a, b, c, d, e) -> response.Response(
BitArray,
),
) -> Router
pub fn patch6(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
p5: Param(e),
p6: Param(f),
handler: fn(request.Req, a, b, c, d, e, f) -> response.Response(
BitArray,
),
) -> Router
pub fn path_for(
pattern: String,
params: List(#(String, String)),
) -> Result(String, request.RadiantError)
pub fn path_for1(
pattern: String,
p1: Param(a),
v1: a,
) -> Result(String, request.RadiantError)
pub fn path_for2(
pattern: String,
p1: Param(a),
v1: a,
p2: Param(b),
v2: b,
) -> Result(String, request.RadiantError)
pub fn path_for3(
pattern: String,
p1: Param(a),
v1: a,
p2: Param(b),
v2: b,
p3: Param(c),
v3: c,
) -> Result(String, request.RadiantError)
pub fn path_for4(
pattern: String,
p1: Param(a),
v1: a,
p2: Param(b),
v2: b,
p3: Param(c),
v3: c,
p4: Param(d),
v4: d,
) -> Result(String, request.RadiantError)
pub fn path_for5(
pattern: String,
p1: Param(a),
v1: a,
p2: Param(b),
v2: b,
p3: Param(c),
v3: c,
p4: Param(d),
v4: d,
p5: Param(e),
v5: e,
) -> Result(String, request.RadiantError)
pub fn path_for6(
pattern: String,
p1: Param(a),
v1: a,
p2: Param(b),
v2: b,
p3: Param(c),
v3: c,
p4: Param(d),
v4: d,
p5: Param(e),
v5: e,
p6: Param(f),
v6: f,
) -> Result(String, request.RadiantError)
pub fn post(
router: Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> Router
pub fn post1(
router: Router,
pattern: String,
p1: Param(a),
handler: fn(request.Req, a) -> response.Response(BitArray),
) -> Router
pub fn post2(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
handler: fn(request.Req, a, b) -> response.Response(BitArray),
) -> Router
pub fn post3(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
handler: fn(request.Req, a, b, c) -> response.Response(BitArray),
) -> Router
pub fn post4(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
handler: fn(request.Req, a, b, c, d) -> response.Response(
BitArray,
),
) -> Router
pub fn post5(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
p5: Param(e),
handler: fn(request.Req, a, b, c, d, e) -> response.Response(
BitArray,
),
) -> Router
pub fn post6(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
p5: Param(e),
p6: Param(f),
handler: fn(request.Req, a, b, c, d, e, f) -> response.Response(
BitArray,
),
) -> Router
pub fn put(
router: Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> Router
pub fn put1(
router: Router,
pattern: String,
p1: Param(a),
handler: fn(request.Req, a) -> response.Response(BitArray),
) -> Router
pub fn put2(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
handler: fn(request.Req, a, b) -> response.Response(BitArray),
) -> Router
pub fn put3(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
handler: fn(request.Req, a, b, c) -> response.Response(BitArray),
) -> Router
pub fn put4(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
handler: fn(request.Req, a, b, c, d) -> response.Response(
BitArray,
),
) -> Router
pub fn put5(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
p5: Param(e),
handler: fn(request.Req, a, b, c, d, e) -> response.Response(
BitArray,
),
) -> Router
pub fn put6(
router: Router,
pattern: String,
p1: Param(a),
p2: Param(b),
p3: Param(c),
p4: Param(d),
p5: Param(e),
p6: Param(f),
handler: fn(request.Req, a, b, c, d, e, f) -> response.Response(
BitArray,
),
) -> Router
pub fn query_route(
router: Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> Router
pub fn route(
router: Router,
method: http.Method,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> Router
Register a route for any HTTP method.
pub fn routes(router: Router) -> List(#(http.Method, String))
pub fn wrap(
mw: fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray),
handler: fn(request.Req) -> response.Response(BitArray),
) -> fn(request.Req) -> response.Response(BitArray)