[−][src]Derive Macro rocket::FromFormValue
#[derive(FromFormValue)]
{
// Attributes available to this derive:
#[form]
}Derive for the FromFormValue trait.
The FromFormValue derive can be applied to enums with nullary
(zero-length) fields:
#[derive(FromFormValue)] enum MyValue { First, Second, Third, }
The derive generates an implementation of the FromFormValue trait for
the decorated enum. The implementation returns successfully when the form
value matches, case insensitively, the stringified version of a variant's
name, returning an instance of said variant. If there is no match, an error
(FromFormValue::Error) of type &RawStr is returned, the value of
which is the raw form field value that failed to match.
As an example, for the enum above, the form values "first", "FIRST",
"fiRSt", and so on would parse as MyValue::First, while "second" and
"third" would parse as MyValue::Second and MyValue::Third,
respectively.
The form field attribute can be used to change the string that is compared
against for a given variant:
#[derive(FromFormValue)] enum MyValue { First, Second, #[form(value = "fourth")] Third, }
The #[form] attribute's grammar is:
form := 'field' '=' STRING_LIT
STRING_LIT := any valid string literal, as defined by Rust
The attribute accepts a single string parameter of name value
corresponding to the string to use to match against for the decorated
variant. In the example above, the the strings "fourth", "FOUrth" and so
on would parse as MyValue::Third.