[−][src]Struct rocket::request::LenientForm
A data guard for parsing FromForm
types leniently.
This type implements the FromData
trait, and like Form
, provides a
generic means to parse arbitrary structures from incoming form data. Unlike
Form
, this type uses a lenient parsing strategy: forms that contains a
superset of the expected fields (i.e, extra fields) will parse successfully.
Leniency
A LenientForm<T>
will parse successfully from an incoming form if the form
contains a superset of the fields in T
. Said another way, a
LenientForm<T>
automatically discards extra fields without error. For
instance, if an incoming form contains the fields "a", "b", and "c" while
T
only contains "a" and "c", the form will parse as LenientForm<T>
.
Usage
The usage of a LenientForm
type is equivalent to that of Form
, so we
defer details to its documentation.
LenientForm
implements FromData
, so it can be used directly as a target
of the data = "<param>"
route parameter. For instance, if some structure
of type T
implements the FromForm
trait, an incoming form can be
automatically parsed into the T
structure with the following route and
handler:
use rocket::request::LenientForm; #[derive(FromForm)] struct UserInput { value: String } #[post("/submit", data = "<user_input>")] fn submit_task(user_input: LenientForm<UserInput>) -> String { format!("Your value: {}", user_input.value) }
Incoming Data Limits
A LenientForm
obeys the same data limits as a Form
and defaults to
32KiB. The limit can be increased by setting the limits.forms
configuration parameter. For instance, to increase the forms limit to 512KiB
for all environments, you may add the following to your Rocket.toml
:
[global.limits]
forms = 524288
Methods
impl<T> LenientForm<T>
[src]
pub fn into_inner(self) -> T
[src]
Consumes self
and returns the parsed value.
Example
use rocket::request::LenientForm; #[derive(FromForm)] struct MyForm { field: String, } #[post("/submit", data = "<form>")] fn submit(form: LenientForm<MyForm>) -> String { form.into_inner().field }
Trait Implementations
impl<T: Debug> Debug for LenientForm<T>
[src]
impl<T> Deref for LenientForm<T>
[src]
impl<'f, T: FromForm<'f>> FromData<'f> for LenientForm<T>
[src]
type Error = FormDataError<'f, T::Error>
The associated error to be returned when the guard fails.
type Owned = String
The owned type returned from FromData::transform()
. Read more
type Borrowed = str
The borrowed type consumed by FromData::from_data()
when FromData::transform()
returns a Transform::Borrowed
. Read more
fn transform(
r: &Request,
d: Data
) -> Transform<Outcome<Self::Owned, Self::Error>>
[src]
r: &Request,
d: Data
) -> Transform<Outcome<Self::Owned, Self::Error>>
fn from_data(
_: &Request,
o: Transformed<'f, Self>
) -> Outcome<Self, Self::Error>
[src]
_: &Request,
o: Transformed<'f, Self>
) -> Outcome<Self, Self::Error>
impl<'q, T: FromForm<'q>> FromQuery<'q> for LenientForm<T>
[src]
type Error = <T as FromForm<'q>>::Error
The associated error to be returned if parsing/validation fails.
fn from_query(q: Query<'q>) -> Result<Self, Self::Error>
[src]
impl<'f, A, T: FromUriParam<Query, A> + FromForm<'f>> FromUriParam<Query, A> for LenientForm<T>
[src]
type Target = T::Target
The resulting type of this conversion.
fn from_uri_param(param: A) -> Self::Target
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for LenientForm<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for LenientForm<T> where
T: Send,
T: Send,
impl<T> Sync for LenientForm<T> where
T: Sync,
T: Sync,
impl<T> Unpin for LenientForm<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for LenientForm<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T, I> AsResult<T, I> for T where
I: Input,
[src]
I: Input,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IntoCollection<T> for T
[src]
fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
[src]
A: Array<Item = T>,
fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
A: Array<Item = U>,
F: FnMut(T) -> U,
[src]
A: Array<Item = U>,
F: FnMut(T) -> U,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Typeable for T where
T: Any,
[src]
T: Any,