Skip to content

web.core

web 核心:Resp/Req/构造器/取参/构建器(Plan 2a Task 1-4 填充) 设计: docs/superpowers/specs/2026-09-27-web-framework-design.md §4;纪律 §14-1

pub struct

struct Pair

Field Type
k Str
v Str

struct Resp

Field Type
status I32
headers List[Pair]
body Str

struct JObj

Field Type
parts List[Str]

struct Req[S]

Field Type
method Str
path Str
query Str
body Str
headers List[Pair]
cookies List[Pair]
params List[Pair]
session List[Pair]
state S

pub fn

Signature Returns Description
html(body: Str) Resp —
json(body: Str) Resp —
text(body: Str) Resp —
redirect(loc: Str) Resp —
status(n: I32, body: Str) Resp —
xml(body: Str) Resp 其他格式(§4.4 格式矩阵;xml 不做自动转义——xml_esc 助手 spec 登记不做,信任调用点已编码)
yaml(body: Str) Resp —
err_json(n: I32, msg: Str) Resp —
attachment(r: Resp, filename: Str) Resp 附件下载头(M-T5 收口补:csv_rows 导出配套;filename 为调用点可信常量,不转义)
with(r: Resp, k: Str, v: Str) Resp —
with_status(r: Resp, n: I32) Resp —
resp_header(r: Resp, k: Str) Str —
resp_body(r: Resp) Str —
resp_status(r: Resp) I32 —
json_obj() JObj —
str(b: JObj, k: Str, v: Str) JObj —
i64(b: JObj, k: Str, v: I64) JObj —
bool(b: JObj, k: Str, v: Bool) JObj —
strs(b: JObj, k: Str, xs: List[Str]) JObj —
end(b: JObj) Str —
end_status(b: JObj, n: I32) Resp end_status 走 json() 底座(M-T1w-1 收口:此前经 status() → text/plain;
JSON 构建器终结物应为 application/json + nosniff 安全默认,err_json 同源受益)
csv_rows(headers: List[Str], rows: List[List[Str]]) Str —
req_of[S](method: Str, path: Str, state: S) Req[S] —
req_full[S](method: Str, path: Str, body: Str, hdrs: List[Pair], state: S) Req[S] —
req_set_params[S](r: &Req[S], params: List[Pair]) Req[S] params 注入(router 匹配后回填 :param;值语义拷贝换字段,Req 本体不动)
req_set_session[S](r: &Req[S], sess: List[Pair]) Req[S] session 注入(mw.with_sessions 验签后回填;params 同款值语义拷贝)
pdec(s: Str) Str —
param[S](r: &Req[S], name: Str) Str —
pair_get(ps: List[Pair], k: Str) Str —
param_i64[S](r: &Req[S], name: Str) Option[I64] —
param_f64[S](r: &Req[S], name: Str) Option[F64] —
query[S](r: &Req[S], name: Str) Str —
query_all[S](r: &Req[S], name: Str) List[Str] —
form[S](r: &Req[S], name: Str) Str —
form_all[S](r: &Req[S], name: Str) List[Str] —
header[S](r: &Req[S], name: Str) Str —
cookie[S](r: &Req[S], name: Str) Str —
session[S](r: &Req[S], name: Str) Str session 访问器(§4.3 冻结名 req.session("uid");with_sessions 注入后可用,缺回空)