#[derive(OperationIo)]
{
// Attributes available to this derive:
#[aide]
}
Available on crate feature
macros only.Expand description
A helper to reduce boilerplate for implementing OperationInput
and OperationOutput for common use-cases.
ยงExamples
The following implements an empty OperationInput and
OperationOutput so that the type can be used in documented
handlers but does not modify the documentation generation in any way.
โ
use aide::{OperationInput, OperationOutput};
#[derive(OperationIo)]
struct MyExtractor;By default both OperationInput and OperationOutput are implemented.
It is possible to restrict either with the input and output parameters.
The following will only implement OperationOutput:
โ
#[derive(OperationIo)]
#[aide(output)]
struct MyExtractor;We can use the implementations of another type,
this is useful for wrapping other (e.g. Json) extractors
that might alter runtime behaviour but the documentation remains the same.
Additionally passing the json_schema flag will put a
JsonSchema bound to all generic parameters.
โ
#[derive(OperationIo)]
#[aide(
input_with = "some_other::Json<T>",
output_with = "some_other::Json<T>",
json_schema
)]
struct Json<T>(pub T);