From c1b493a56b6ffd51e52d2ba212605dd32562e6ee Mon Sep 17 00:00:00 2001 From: sunli Date: Fri, 24 Apr 2020 10:37:18 +0800 Subject: [PATCH] `Extension::result` now returns an `Option` --- src/extensions/mod.rs | 2 +- src/extensions/tracing.rs | 6 +++--- src/query.rs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/extensions/mod.rs b/src/extensions/mod.rs index 57f9cbfa..33321d12 100644 --- a/src/extensions/mod.rs +++ b/src/extensions/mod.rs @@ -54,5 +54,5 @@ pub trait Extension: Sync + Send + 'static { fn resolve_field_end(&self, resolve_id: usize) {} /// Get the results - fn result(&self) -> serde_json::Value; + fn result(&self) -> Option; } diff --git a/src/extensions/tracing.rs b/src/extensions/tracing.rs index 7ee6fe7d..70c4e106 100644 --- a/src/extensions/tracing.rs +++ b/src/extensions/tracing.rs @@ -112,12 +112,12 @@ impl Extension for ApolloTracing { } } - fn result(&self) -> serde_json::Value { + fn result(&self) -> Option { let mut inner = self.inner.lock(); inner .resolves .sort_by(|a, b| a.start_offset.cmp(&b.start_offset)); - serde_json::json!({ + Some(serde_json::json!({ "version": 1, "startTime": inner.start_time.to_rfc3339(), "endTime": inner.end_time.to_rfc3339(), @@ -125,6 +125,6 @@ impl Extension for ApolloTracing { "execution": { "resolvers": inner.resolves } - }) + })) } } diff --git a/src/query.rs b/src/query.rs index 39c739d0..7bb03f16 100644 --- a/src/query.rs +++ b/src/query.rs @@ -212,7 +212,7 @@ impl QueryBuilder { Some( extensions .iter() - .map(|e| (e.name().to_string(), e.result())) + .filter_map(|e| e.result().map(|res| (e.name().to_string(), res))) .collect::>(), ) } else {