predawn-macro 0.9.0

Macros for predawn
Documentation
Define a request body with `multipart/form-data` media type.

This macro will generate 5 implementations, [`FromRequest`], [`ApiRequest`], [`MediaType`], [`RequestMediaType`] and [`SingleMediaType`].

## Example

```rust
use predawn::{
    extract::multipart::{JsonField, Multipart, Upload},
    ToSchema,
};
use serde::Deserialize;

#[derive(ToSchema, Multipart)]
pub struct SomeMultipart {
    person: JsonField<Person>,
    message: String,
    files: Vec<Upload>,
}

#[derive(ToSchema, Deserialize)]
pub struct Person {
    name: String,
    age: u8,
}
```

## Note

`struct`s can only be annotated with `Multipart` derive macro if all of their fields implement the [`ParseField`] trait.

[`FromRequest`]: https://docs.rs/predawn/latest/predawn/from_request/trait.FromRequest.html
[`ApiRequest`]: https://docs.rs/predawn/latest/predawn/api_request/trait.ApiRequest.html
[`MediaType`]: https://docs.rs/predawn/latest/predawn/media_type/trait.MediaType.html
[`RequestMediaType`]: https://docs.rs/predawn/latest/predawn/media_type/trait.RequestMediaType.html
[`SingleMediaType`]: https://docs.rs/predawn/latest/predawn/media_type/trait.SingleMediaType.html
[`ParseField`]: https://docs.rs/predawn/latest/predawn/extract/multipart/trait.ParseField.html