predawn-macro 0.9.0

Macros for predawn
Documentation
Define a multiple response.

This macro will generate 3 implementations, [`MultiResponse`], [`IntoResponse`] and [`ApiResponse`].

## Example

```rust
use predawn::{
    define_into_response_error, payload::Json, response_error::WriteJsonError, MultiResponse,
    SingleResponse, ToSchema,
};
use serde::Serialize;

#[derive(Debug, Serialize, ToSchema)]
pub struct ErrorSource {
    error_code: u16,
    error_message: String,
}

#[derive(Debug, SingleResponse)]
pub struct NotFoundAccount;

#[derive(MultiResponse)]
#[multi_response(error = MultipleResponseError)]
pub enum MultipleResponse<T: ToSchema + Serialize> {
    #[status = 200]
    Ok(Json<T>),

    #[status = 404]
    NotFound(NotFoundAccount),

    #[status = 500]
    Error(Json<ErrorSource>),
}

define_into_response_error! {
    name: MultipleResponseError,
    errors: [
        WriteJsonError,
    ],
}
```

[`MultiResponse`]: https://docs.rs/predawn/latest/predawn/trait.MultiResponse.html
[`IntoResponse`]: https://docs.rs/predawn/latest/predawn/into_response/trait.IntoResponse.html
[`ApiResponse`]: https://docs.rs/predawn/latest/predawn/api_response/trait.ApiResponse.html