From 8eb0fa62557e26623cd3018a71d04cc8bbaf3f85 Mon Sep 17 00:00:00 2001 From: Arjan Bal Date: Tue, 18 Aug 2026 14:23:18 +0530 Subject: [PATCH] fork server call options --- grpc/src/inmemory/mod.rs | 4 ++-- grpc/src/server/interceptor.rs | 3 +-- grpc/src/server/mod.rs | 17 +++++++++++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/grpc/src/inmemory/mod.rs b/grpc/src/inmemory/mod.rs index 1d436e8bf..8aed3475a 100644 --- a/grpc/src/inmemory/mod.rs +++ b/grpc/src/inmemory/mod.rs @@ -235,7 +235,7 @@ impl ServerTransport for InMemoryServerCall { ) -> InMemoryServingConnection { let mut send = InMemoryServerSendStream { tx: self.resp_tx }; let recv = BoxedRecvStream(Box::new(InMemoryServerRecvStream { rx: self.req_rx })); - let options = crate::client::CallOptions::default(); + let options = crate::server::CallOptions::default(); let trailers_tx = self.trailer_tx; let inner = Box::pin(async move { @@ -576,7 +576,7 @@ mod tests { use std::sync::atomic::AtomicBool; use std::sync::atomic::Ordering; - use crate::client::CallOptions; + use crate::server::CallOptions; use crate::server::RecvStream; use crate::server::RequestHeaders; use crate::server::SendStream; diff --git a/grpc/src/server/interceptor.rs b/grpc/src/server/interceptor.rs index 20c9d4a5b..f4f0f8453 100644 --- a/grpc/src/server/interceptor.rs +++ b/grpc/src/server/interceptor.rs @@ -22,7 +22,7 @@ * */ -use crate::client::CallOptions; +use crate::server::CallOptions; use crate::server::Handle; use crate::server::RecvStream; use crate::server::RequestHeaders; @@ -96,7 +96,6 @@ mod test { use tokio::sync::Mutex; use super::*; - use crate::client::CallOptions; use crate::core::RecvMessage; use crate::server::RequestHeaders; use crate::server::ResponseStreamItem; diff --git a/grpc/src/server/mod.rs b/grpc/src/server/mod.rs index ee051db3b..2088d3ca3 100644 --- a/grpc/src/server/mod.rs +++ b/grpc/src/server/mod.rs @@ -51,7 +51,6 @@ use std::sync::Arc; use tonic::async_trait; -use crate::client::CallOptions; use crate::core::RecvMessage; use crate::core::SendMessage; use crate::metadata::MetadataMap; @@ -59,6 +58,21 @@ use crate::rt::GrpcRuntime; pub(crate) mod interceptor; +/// Settings to configure RPCs sent using the [`Handle`] trait. +/// +/// Most applications will not need this type, and will set options via the +/// generated (e.g. protobuf) APIs instead. +#[derive(Default, Clone)] +#[non_exhaustive] +pub struct CallOptions {} + +impl CallOptions { + /// Constructs a new [`CallOptions`] with the default settings. + pub fn new() -> Self { + Self::default() + } +} + /// A serving connection that supports graceful shutdown. /// /// Implements `Future` to drive the connection, and exposes @@ -977,7 +991,6 @@ mod tests { #[tokio::test] async fn listener_dropped_immediately_while_connections_drain() { - use crate::client::CallOptions; use crate::server::RecvStream; use crate::server::RequestHeaders; use crate::server::SendStream;