#[derive(MergedObject)]
{
// Attributes available to this derive:
#[graphql]
}
Expand description
Define a merged object with multiple object types.
§Macro attributes
| Attribute | description | Type | Optional |
|---|---|---|---|
| name | Object name | string | Y |
| name_type | If true, the object name will be specified from async_graphql::TypeName trait | bool | Y |
| cache_control | Object cache control | CacheControl | Y |
| extends | Add fields to an entity that’s defined in another service | bool | Y |
| visible | If false, it will not be displayed in introspection. See also the Book. | bool | Y |
| visible | Call the specified function. If the return value is false, it will not be displayed in introspection. | string | Y |
| serial | Resolve each field sequentially. | bool | Y |
| inaccessible | Indicate that an object is not accessible from a supergraph when using Apollo Federation | bool | Y |
| tag | Arbitrary string metadata that will be propagated to the supergraph when using Apollo Federation. This attribute is repeatable | string | Y |
| directives | Directives | expr | Y |
§Examples
use async_graphql::*;
#[derive(SimpleObject)]
struct Object1 {
a: i32,
}
#[derive(SimpleObject)]
struct Object2 {
b: i32,
}
#[derive(SimpleObject)]
struct Object3 {
c: i32,
}
#[derive(MergedObject)]
struct MyObj(Object1, Object2, Object3);
let obj = MyObj(Object1 { a: 10 }, Object2 { b: 20 }, Object3 { c: 30 });