#[derive(MultiRequestMediaType)]
{
// Attributes available to this derive:
#[multi_request_media_type]
}
Expand description
Define a single request body with multiple media types.
This macro will generate 3 implementations, MultiRequestMediaType, FromRequest and ApiRequest.
ยงExample
use predawn::{
define_from_request_error,
payload::{Form, Json},
response_error::{ReadFormError, ReadJsonError},
MultiRequestMediaType, ToSchema,
};
use serde::de::DeserializeOwned;
#[derive(Debug, MultiRequestMediaType)]
#[multi_request_media_type(error = ReadJsonOrFormError)]
pub enum JsonOrForm<T: ToSchema + DeserializeOwned> {
Json(Json<T>),
Form(Form<T>),
}
define_from_request_error! {
name: ReadJsonOrFormError,
errors: [
ReadJsonError,
ReadFormError,
],
}