Update merging_objects.md
Add subscription merging
This commit is contained in:
parent
265845ceca
commit
83ffa59184
|
@ -22,6 +22,8 @@ Instead, the `#[derive(GQLMergedObject)]` macro allows you to split an object's
|
||||||
|
|
||||||
**Tip:** Every `#[Object]` needs a unique name even in a GQLMergedObject so make sure to give each object your merging it's own name.
|
**Tip:** Every `#[Object]` needs a unique name even in a GQLMergedObject so make sure to give each object your merging it's own name.
|
||||||
|
|
||||||
|
**Note:** This works for queries and mutations. For subscriptions, see "Merging Subscriptions" below.
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
#[Object]
|
#[Object]
|
||||||
impl UserQuery {
|
impl UserQuery {
|
||||||
|
@ -46,3 +48,42 @@ let schema = Schema::new(
|
||||||
EmptySubscription
|
EmptySubscription
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Merging Subscriptions
|
||||||
|
|
||||||
|
Along with `GQLMergedObject`, you can derive `GQLMergedSubscription` to merge separate `#[Subscription]` blocks.
|
||||||
|
|
||||||
|
Like merging Objects, each subscription block requires a unique name.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```rust
|
||||||
|
#[derive(Default)]
|
||||||
|
struct Subscription1;
|
||||||
|
|
||||||
|
#[Subscription]
|
||||||
|
impl Subscription1 {
|
||||||
|
async fn events1(&self) -> impl Stream<Item = i32> {
|
||||||
|
futures::stream::iter(0..10)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Default)]
|
||||||
|
struct Subscription2;
|
||||||
|
|
||||||
|
#[Subscription]
|
||||||
|
impl Subscription2 {
|
||||||
|
async fn events2(&self) -> impl Stream<Item = i32> {
|
||||||
|
futures::stream::iter(10..20)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(GQLMergedSubscription, Default)]
|
||||||
|
struct Subscription(Subscription1, Subscription2);
|
||||||
|
|
||||||
|
let schema = Schema::new(
|
||||||
|
Query::default(),
|
||||||
|
EmptyMutation,
|
||||||
|
Subscription::default()
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue
Block a user