2 releases
0.1.1 | Jan 8, 2023 |
---|---|
0.1.0 | Jan 4, 2023 |
#1983 in Rust patterns
4KB
has_fields
Some macros helpful for processing forms with optional fields.
Usage
For instance, if you got a form like this:
let form = MyForm {
id: 1,
name: Some("name".to_string()),
email: Some("email@example.com".to_string()),
phone: None,
}
Here are some macros that might help you:
-
has_fields::has_fields!
: Check if a struct has some fields. Returns a boolean.has_fields!(form, "name", "email") // true
-
has_fields::require_fields
: Check if a struct has some fields. Returns aResult<(), Vec<&'static str>>
.require_fields!(form, "name", "email") // Ok(()) require_fields!(form, "name", "email", "phone") // Err(vec!["phone"])
Moreover, you can derive HasFields
trait for your struct, and use these methods:
-
num_fields
: Get the number ofSome(...)
or non-optional fields in a struct.form.num_fields() // 2
License
The Unlicense
Contributing
If you have any ideas, feel free to open an issue or a PR.
Dependencies
~1.5MB
~35K SLoC