wayfinder

Types

pub type Handler(a, b) {
  Handler0(fn(b) -> a)
  Handler1(fn(b, String) -> a)
  Handler2(fn(b, String, String) -> a)
  Handler3(fn(b, String, String, String) -> a)
  Handler4(fn(b, String, String, String, String) -> a)
  Handler5(fn(b, String, String, String, String, String) -> a)
}

Constructors

  • Handler0(fn(b) -> a)
  • Handler1(fn(b, String) -> a)
  • Handler2(fn(b, String, String) -> a)
  • Handler3(fn(b, String, String, String) -> a)
  • Handler4(fn(b, String, String, String, String) -> a)
  • Handler5(fn(b, String, String, String, String, String) -> a)
pub type PathSegment {
  Literal(val: String)
  Param(name: String)
}

Constructors

  • Literal(val: String)
  • Param(name: String)
pub type Route(a, b) {
  Route(
    path: List(PathSegment),
    search: SearchParams(b),
    handler: Handler(a, b),
  )
}

Constructors

  • Route(
      path: List(PathSegment),
      search: SearchParams(b),
      handler: Handler(a, b),
    )
pub type SearchParams(a) {
  SearchParams(
    decode: fn(List(#(String, String))) -> Result(a, Nil),
    encode: fn(a) -> List(#(String, String)),
  )
}

Constructors

  • SearchParams(
      decode: fn(List(#(String, String))) -> Result(a, Nil),
      encode: fn(a) -> List(#(String, String)),
    )

Values

pub fn do_validate(
  routes: List(Route(a, b)),
) -> Result(Nil, String)
pub fn get_params1(
  route: Route(a, b),
  segs: List(String),
) -> Result(#(String), Nil)
pub fn get_params2(
  route: Route(a, b),
  segs: List(String),
) -> Result(#(String, String), Nil)
pub fn get_params3(
  route: Route(a, b),
  segs: List(String),
) -> Result(#(String, String, String), Nil)
pub fn get_params4(
  route: Route(a, b),
  segs: List(String),
) -> Result(#(String, String, String, String), Nil)
pub fn get_params5(
  route: Route(a, b),
  segs: List(String),
) -> Result(#(String, String, String, String, String), Nil)
pub fn make_route0(
  path: String,
  search: SearchParams(a),
  handler: fn(a) -> b,
) -> Route(b, a)
pub fn make_route1(
  path: String,
  search: SearchParams(a),
  handler: fn(a, String) -> b,
) -> Route(b, a)
pub fn make_route2(
  path: String,
  search: SearchParams(a),
  handler: fn(a, String, String) -> b,
) -> Route(b, a)
pub fn make_route3(
  path: String,
  search: SearchParams(a),
  handler: fn(a, String, String, String) -> b,
) -> Route(b, a)
pub fn make_route4(
  path: String,
  search: SearchParams(a),
  handler: fn(a, String, String, String, String) -> b,
) -> Route(b, a)
pub fn make_route5(
  path: String,
  search: SearchParams(a),
  handler: fn(a, String, String, String, String, String) -> b,
) -> Route(b, a)
pub fn path_to_segments(path: String) -> List(PathSegment)
pub fn route_to_path(
  route: Route(a, b),
  search: b,
  params: List(String),
) -> String
pub fn route_to_path0(route: Route(a, b), search: b) -> String
pub fn route_to_path1(
  route: Route(a, b),
  search: b,
  p1: String,
) -> String
pub fn route_to_path2(
  route: Route(a, b),
  search: b,
  p1: String,
  p2: String,
) -> String
pub fn route_to_path3(
  route: Route(a, b),
  search: b,
  p1: String,
  p2: String,
  p3: String,
) -> String
pub fn route_to_path4(
  route: Route(a, b),
  search: b,
  p1: String,
  p2: String,
  p3: String,
  p4: String,
) -> String
pub fn route_to_path5(
  route: Route(a, b),
  search: b,
  p1: String,
  p2: String,
  p3: String,
  p4: String,
  p5: String,
) -> String
pub fn segs_to_handler(
  segs: List(String),
  query_params: List(#(String, String)),
  routes: List(Route(a, b)),
) -> Result(a, Nil)
pub fn segs_to_route(
  routes: List(Route(a, b)),
  segs: List(String),
) -> Result(Route(a, b), Nil)
pub fn validate(routes: List(Route(a, b))) -> Nil
Search Document