1
0
mirror of https://github.com/fafhrd91/actix-web synced 2025-06-25 06:39:22 +02:00

pass request by value

This commit is contained in:
Nikolay Kim
2017-11-26 20:32:12 -08:00
parent eb7f48a1c6
commit 8e0a7f44d4
12 changed files with 132 additions and 109 deletions

View File

@ -12,7 +12,7 @@ use actix_web::middlewares::RequestSession;
use futures::stream::{once, Once};
/// somple handle
fn index(req: &mut HttpRequest, state: &()) -> Result<HttpResponse> {
fn index(mut req: HttpRequest, state: &()) -> Result<HttpResponse> {
println!("{:?}", req);
if let Ok(ch) = req.payload_mut().readany() {
if let futures::Async::Ready(Some(d)) = ch {
@ -32,7 +32,7 @@ fn index(req: &mut HttpRequest, state: &()) -> Result<HttpResponse> {
}
/// somple handle
fn index_async(req: &mut HttpRequest, state: &()) -> Once<actix_web::Frame, Error>
fn index_async(req: HttpRequest, state: &()) -> Once<actix_web::Frame, Error>
{
println!("{:?}", req);
@ -44,7 +44,7 @@ fn index_async(req: &mut HttpRequest, state: &()) -> Once<actix_web::Frame, Erro
}
/// handle with path parameters like `/user/{name}/`
fn with_param(req: &mut HttpRequest, state: &()) -> Result<HttpResponse>
fn with_param(req: HttpRequest, state: &()) -> Result<HttpResponse>
{
println!("{:?}", req);

View File

@ -15,7 +15,7 @@ struct AppState {
}
/// somple handle
fn index(req: &mut HttpRequest, state: &AppState) -> HttpResponse {
fn index(req: HttpRequest, state: &AppState) -> HttpResponse {
println!("{:?}", req);
state.counter.set(state.counter.get() + 1);
httpcodes::HTTPOk.with_body(
@ -36,11 +36,11 @@ impl Route for MyWebSocket {
/// Shared application state
type State = AppState;
fn request(req: &mut HttpRequest, ctx: &mut HttpContext<Self>) -> RouteResult<Self>
fn request(mut req: HttpRequest, ctx: &mut HttpContext<Self>) -> RouteResult<Self>
{
let resp = ws::handshake(req)?;
let resp = ws::handshake(&req)?;
ctx.start(resp);
ctx.add_stream(ws::WsStream::new(req));
ctx.add_stream(ws::WsStream::new(&mut req));
Reply::async(MyWebSocket{counter: 0})
}
}

View File

@ -22,14 +22,14 @@ impl Actor for MyWebSocket {
impl Route for MyWebSocket {
type State = ();
fn request(req: &mut HttpRequest, ctx: &mut HttpContext<Self>) -> RouteResult<Self>
fn request(mut req: HttpRequest, ctx: &mut HttpContext<Self>) -> RouteResult<Self>
{
// websocket handshake
let resp = ws::handshake(req)?;
let resp = ws::handshake(&req)?;
// send HttpResponse back to peer
ctx.start(resp);
// convert bytes stream to a stream of `ws::Message` and register it
ctx.add_stream(ws::WsStream::new(req));
ctx.add_stream(ws::WsStream::new(&mut req));
Reply::async(MyWebSocket)
}
}