has_fields 0.1.1

Some macros helpful for processing forms with optional fields
Documentation
# has_fields


Some macros helpful for processing forms with optional fields.

## Usage


For instance, if you got a form like this:
```rust
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.

    ```rust
    has_fields!(form, "name", "email") // true
    ```

2. `has_fields::require_fields`: Check if a struct has some fields. Returns a `Result<(), Vec<&'static str>>`.

    ```rust
    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.

    ```rust
    form.num_fields() // 2
    ```

## License


The Unlicense

## Contributing


If you have any ideas, feel free to open an issue or a PR.