跳至主要內容

ControllerData类型

ltpp-universe大约 1 分钟tcplanewebrust

提示

ControllerData 作为中间件和响应处理函数的参数类型,具体类型定义如下

#[derive(Clone, Debug, Lombok)]
pub struct ControllerData {
    pub(super) stream: OptionArcTcpStream,
    pub(super) request: Request,
    pub(super) response: Response,
    pub(super) log: Log,
}

请求

获取请求信息

let controller_data = arc_lock_controller_data.write().unwrap();
let request: Request = controller_data.get_request().clone();
let controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
let request: Request = controller_data.get_request().clone();

获取可变请求信息

let mut controller_data = arc_lock_controller_data.write().unwrap();
let request: &mut Request = controller_data.get_mut_request();
let mut controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
let request: &mut Request = controller_data.get_mut_request();

设置请求信息

let mut controller_data = arc_lock_controller_data.write().unwrap();
controller_data.set_request(Request::default());
let mut controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
controller_data.set_request(Request::default());

stream

获取 stream

let controller_data = arc_lock_controller_data.write().unwrap();
let stream: Arc<TcpStream> = controller_data.get_stream().clone().unwrap();
let controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
let stream: Arc<TcpStream> = controller_data.get_stream().clone().unwrap();

获取可变 stream

let mut controller_data = arc_lock_controller_data.write().unwrap();
controller_data.get_mut_stream().and_then(|mut stream| {});
let mut controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
controller_data.get_mut_stream().and_then(|mut stream| {});

设置 stream

let mut controller_data = arc_lock_controller_data.write().unwrap();
controller_data.set_stream(None);
let mut controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
controller_data.set_stream(None);

响应

获取响应

let controller_data = arc_lock_controller_data.write().unwrap();
let response: Response = controller_data.get_response().clone();
let controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
let response: Response = controller_data.get_response().clone();

获取可变响应

let mut controller_data = arc_lock_controller_data.write().unwrap();
let response: &mut Response = controller_data.get_mut_response();
let mut controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
let response: &mut Response = controller_data.get_mut_response();

设置响应

let mut controller_data = arc_lock_controller_data.write().unwrap();
controller_data.set_response(Response::default());
let mut controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
controller_data.set_response(Response::default());

日志

获取日志

let controller_data = arc_lock_controller_data.write().unwrap();
let log: &Log = controller_data.get_log();
let controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
let log: &Log = controller_data.get_log();

获取可变日志

let mut controller_data = arc_lock_controller_data.write().unwrap();
let log: &mut Log = controller_data.get_mut_log();
let mut controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
let log: &mut Log = controller_data.get_mut_log();

设置日志

let mut controller_data = arc_lock_controller_data.write().unwrap();
controller_data.set_log(Log::default());
let mut controller_data = get_rw_lock_write_controller_data(&arc_lock_controller_data);
controller_data.set_log(Log::default());
上次编辑于:
贡献者: 尤雨东