Chemical
Dark
Light
Paper
Themes
Dark
Light
Paper
Modules
cstd
core
std
compiler
compiler_runtime
lab
transformer
atomic
async
crashsave
osrand
crypto
encoding
bcrypt
uuid
regex
datetime
path
fs
compression
archive
image
audio
font
mime
json
html_comp
html_parser
html
ide
minlsp
html_ide
css_parser
css
css_ide
js_syntax
universal_parser
js_parser
js
js_cbi_lexer
js_ide
md_parser
md
md_ide
universal
universal_ide
page
net
tls
http
server
environment
process
window
webview
docgen
test_env
test
api
router.ch
Declarations in
router.ch
1
declarations
http
Declarations
Public only
web
#
Public
namespace
namespace
web
===== Router + middleware =====
Handler
#
Public
typealias
type
Handler =
function
<func(
Request
,
ResponseWriter
) : void>
Middleware
#
Public
typealias
type
Middleware =
function
<func(
Handler
) :
Handler
>
Route
#
Public
struct
struct
Route {
var
method :
string
var
pattern :
string
var
handler :
Handler
}
delete
#
function
func
delete(self : *
Route
) : void
copy
Router
#
Public
struct
struct
Router {
var
routes :
vector
<
Route
>
var
middlewares :
vector
<
Middleware
> }
constructor
#
Public
function
Constructor
func
constructor() :
Router
copy
add
#
Public
function
func
add(self : &
Router
, method : *char, pattern : *char, h :
Handler
) : void
copy
use_middleware
#
Public
function
func
use_middleware(self : &
Router
, m :
Middleware
) : void
copy
match_route
#
Public
function
func
match_route(self : &
Router
, method : &
string
, path : &
string
, params_out : *
vector
<
pair
<
string
,
string
>>) : *
Route
copy
apply_middlewares
#
Public
function
func
apply_middlewares(self : &
Router
, base :
Handler
) :
Handler
copy
delete
#
function
func
delete(self : *
Router
) : void
copy
match_pattern
#
Public
function
func
match_pattern(pattern : &
string
, path : &
string
, params_out : *
vector
<
pair
<
string
,
string
>>) : bool
copy
split_segments
#
Public
function
func
split_segments(s : &
string
) :
vector
<
string
>
copy
Show Debug Info
Generated from: /home/runner/work/chemical/chemical/chemical-tcc/libs/http/src/router.ch
File ID: 448
↑