has_fields

Crates.iohas_fields
lib.rshas_fields
version0.1.1
sourcesrc
created_at2023-01-04 02:40:45.618655
updated_at2023-01-08 07:41:09.771507
descriptionSome macros helpful for processing forms with optional fields
homepage
repositoryhttps://github.com/lihe07/has_fields
max_upload_size
id750547
size5,943
He Li (lihe07)

documentation

README

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:

  1. has_fields::has_fields!: Check if a struct has some fields. Returns a boolean.

    has_fields!(form, "name", "email") // true
    
  2. has_fields::require_fields: Check if a struct has some fields. Returns a Result<(), 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:

  1. num_fields: Get the number of Some(...) 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.

Commit count: 6

cargo fmt