extractor.rs
Rust test marker or harnessimports encoding::all::UTF_8
SHA-25673933d6011dc3cfaf3a6f0fc286c1432ab9e635ab82f45f66c3d783e02dc7959
MaleculeMd₂(In₄Pa)
Evidence
1use std::marker::PhantomData;
2use std::ops::{Deref, DerefMut};
3use std::rc::Rc;
4use std::{fmt, str};
5
6use bytes::Bytes;
7use encoding::all::UTF_8;
8use encoding::types::{DecoderTrap, Encoding};
9use futures::{future, Async, Future, Poll};
10use mime::Mime;
11use serde::de::{self, DeserializeOwned};
12use serde_urlencoded;
13
14use de::PathDeserializer;
15use error::{Error, ErrorBadRequest, ErrorNotFound, UrlencodedError};
16use handler::{AsyncResult, FromRequest};
17use httpmessage::{HttpMessage, MessageBody, UrlEncoded};
18use httprequest::HttpRequest;
19
20#[derive(PartialEq, Eq, PartialOrd, Ord)]
21/// Extract typed information from the request's path.
22///
23/// ## Example
⋯4 lines
40:73… rs
41/// |r| r.method(http::Method::GET).with(index),
42/// ); // <- use `with` extractor
43/// }
44/// ```
45///
46/// It is possible to extract path information to a specific type that
47/// implements `Deserialize` trait from *serde*.
48///
49/// ```rust
50/// # extern crate bytes;
…
73:12… Path<T> {
74 inner: T,
75}
76
77impl<T> AsRef<T> for Path<T> {
78 fn as_ref(&self) -> &T {
79 &self.inner
⋯4 lines
163:4… // use `with` extractor for query info
164/// // this handler get called only if request's query contains `username` field
165/// // The correct reques …
⋯5 lines
751);
752
753#[cfg(test)]
754mod tests {
755 use super::*;
756 use bytes::Bytes;
757 use futures::{Async, Future};
758 use http::header;
759 use mime;
760 use resource::Resource;
761 use router::{ResourceDef, Router};
762 use test::TestRequest;
763
764 #[derive(Deserialize, Debug, PartialEq)]
765 struct Info {
766 hello: String,
767 }
768
769 #[test]
770 fn test_bytes() {
771 let cfg = PayloadConfig::default();
772 let req = TestRequest::with_header(header::CONTENT …