mirror of
https://github.com/rwf2/Rocket.git
synced 2025-02-11 03:02:10 +00:00
This is required to be able to do anything useful with the body in the outgoing response. Request fairings do not appear to need to be async as everything on Data that returns a future moves self and on_request only gets &Data, but the same change in this commit should work for on_request if desired.
31 lines
824 B
Rust
31 lines
824 B
Rust
#![feature(proc_macro_hygiene, async_await)]
|
|
#![allow(dead_code)] // This test is only here so that we can ensure it compiles.
|
|
|
|
#[macro_use] extern crate rocket;
|
|
|
|
use rocket::State;
|
|
use rocket::response::{self, Responder};
|
|
|
|
struct SomeState;
|
|
|
|
pub struct CustomResponder<'r, R> {
|
|
responder: R,
|
|
state: &'r SomeState,
|
|
}
|
|
|
|
impl<'r, R: Responder<'r>> Responder<'r> for CustomResponder<'r, R> {
|
|
fn respond_to(self, _: &rocket::Request) -> response::ResultFuture<'r> {
|
|
unimplemented!()
|
|
}
|
|
}
|
|
|
|
#[get("/unit_state")]
|
|
fn unit_state(state: State<SomeState>) -> CustomResponder<()> {
|
|
CustomResponder { responder: (), state: state.inner() }
|
|
}
|
|
|
|
#[get("/string_state")]
|
|
fn string_state(state: State<SomeState>) -> CustomResponder<String> {
|
|
CustomResponder { responder: "".to_string(), state: state.inner() }
|
|
}
|