Struct tsukuyomi::Input[][src]

pub struct Input { /* fields omitted */ }

Contextual information used by processes during an incoming HTTP request.

Methods

impl Input
[src]

Acquires a mutable borrow of Input from the current task context and executes the provided closure with its reference.

Panics

This function only work in the management of the framework and causes a panic if any references to Input is not set at the current task. Do not use this function outside of futures returned by the handler functions. Such situations often occurs by spawning tasks by the external Executor (typically calling tokio::spawn()).

In additional, this function forms a (dynamic) scope to prevent the references to Input violate the borrowing rule in Rust. Duplicate borrowings such as the following code are reported as a runtime error.

This example is not tested
Input::with_current(|input| {
    some_process()
});

fn some_process() {
    // Duplicate borrowing of `Input` occurs at this point.
    Input::with_current(|input| { ... })
}

Returns true if the reference to Input is set to the current task.

  • Outside of Future managed by the framework.
  • A mutable borrow has already been acquired.

Returns a shared reference to the value of Request contained in this context.

Returns a mutable reference to the value of Request contained in this context.

Parses a header field in the request to a value of H.

Returns the reference to a Endpoint matched to the incoming request.

Returns a proxy object for accessing parameters extracted by the router.

Important traits for &'a mut R

Returns the reference to a value of T registered in the global storage.

Panics

This method will cause a panic if a value of T is not registered in the global storage.

Returns the reference to a value of T registered in the global storage, if possible.

This method will return a None if a value of T is not registered in the global storage.

Returns a proxy object for managing the value of Cookie entries.

This function will perform parsing when called at first, and returns an Err if the value of header field is invalid.

Methods from Deref<Target = Request<RequestBody>>

Returns a reference to the associated HTTP method.

Examples

let request: Request<()> = Request::default();
assert_eq!(*request.method(), Method::GET);

Returns a mutable reference to the associated HTTP method.

Examples

let mut request: Request<()> = Request::default();
*request.method_mut() = Method::PUT;
assert_eq!(*request.method(), Method::PUT);

Returns a reference to the associated URI.

Examples

let request: Request<()> = Request::default();
assert_eq!(*request.uri(), *"/");

Returns a mutable reference to the associated URI.

Examples

let mut request: Request<()> = Request::default();
*request.uri_mut() = "/hello".parse().unwrap();
assert_eq!(*request.uri(), *"/hello");

Returns the associated version.

Examples

let request: Request<()> = Request::default();
assert_eq!(request.version(), Version::HTTP_11);

Returns a mutable reference to the associated version.

Examples

let mut request: Request<()> = Request::default();
*request.version_mut() = Version::HTTP_2;
assert_eq!(request.version(), Version::HTTP_2);

Returns a reference to the associated header field map.

Examples

let request: Request<()> = Request::default();
assert!(request.headers().is_empty());

Returns a mutable reference to the associated header field map.

Examples

let mut request: Request<()> = Request::default();
request.headers_mut().insert(HOST, HeaderValue::from_static("world"));
assert!(!request.headers().is_empty());

Returns a reference to the associated extensions.

Examples

let request: Request<()> = Request::default();
assert!(request.extensions().get::<i32>().is_none());

Returns a mutable reference to the associated extensions.

Examples

let mut request: Request<()> = Request::default();
request.extensions_mut().insert("hello");
assert_eq!(request.extensions().get(), Some(&"hello"));

Important traits for &'a mut R

Returns a reference to the associated HTTP body.

Examples

let request: Request<String> = Request::default();
assert!(request.body().is_empty());

Important traits for &'a mut R

Returns a mutable reference to the associated HTTP body.

Examples

let mut request: Request<String> = Request::default();
request.body_mut().push_str("hello world");
assert!(!request.body().is_empty());

Trait Implementations

impl Debug for Input
[src]

Formats the value using the given formatter. Read more

impl Deref for Input
[src]

The resulting type after dereferencing.

Dereferences the value.

impl DerefMut for Input
[src]

Mutably dereferences the value.

Auto Trait Implementations

impl Send for Input

impl !Sync for Input