tonic-build: option to emit Arc<Self> as server receiver (#1352)

This implements an option to emit `Arc<Self>` instead of `&self` in
server traits. This enables implementor to reference `Self` data for
indefinite duration, which may be useful for streaming requests.

Fixes: #1351
This commit is contained in:
Auri
2023-04-19 19:36:43 +00:00
committed by GitHub
parent 8e506df77e
commit 4942dd4a43
11 changed files with 165 additions and 13 deletions
@@ -389,7 +389,11 @@ pub mod server_reflection_server {
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
(*inner).server_reflection_info(request).await
<T as ServerReflection>::server_reflection_info(
&inner,
request,
)
.await
};
Box::pin(fut)
}