macro_rules! scope {
    (
        $(#[$attrs:meta])*
        $vis:vis struct $name:ident {
            includes: [$($include:ty),*],
            excludes: [$($exclude:ty),*]
        }
    ) => { ... };
}
Expand description

A macro to help with scoping plugins to a subset of all operations.

The scope must partition all operations, that is, each and every operation must be included or excluded, but not both.

The generated server SDK exports a similar scope macro which is aware of a service’s operations and can complete underspecified scopes automatically.

§Example

For a service with three operations: OperationA, OperationB, OperationC.

scope! {
    struct OnlyAB {
        includes: [OperationA, OperationB],
        excludes: [OperationC]
    }
}