Skip to content

Commit e7c2b73

Browse files
committed
Implement GenericByteStreamMethodHandler and CodecMessageStreamHandler adapter
This commit introduces the `GenericByteStreamMethodHandler` trait to provide a standard interface for handling raw gRPC byte streams (`ReqB: Buf`). Additionally, it adds the `CodecMessageStreamHandler`, which bridges the gap between raw byte streams and strongly-typed gRPC messages. It acts as an adapter that wraps an underlying `MessageStreamHandler` and implements `GenericByteStreamMethodHandler`, transparently managing the encoding and decoding of message streams using standard Codecs. Finally, the `method_handler` module is updated to export these new components and introduces a `CodecRespB` type alias for the default codec response body type.
1 parent 88bfd31 commit e7c2b73

3 files changed

Lines changed: 545 additions & 0 deletions

File tree

grpc/src/server/method_handler.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ pub use server_streaming_adapter::ServerStreamingAdapter;
99

1010
mod unary_adapter;
1111
pub use unary_adapter::UnaryMethodAdapter;
12+
mod generic_byte_stream_method_handler;
13+
pub use generic_byte_stream_method_handler::GenericByteStreamMethodHandler;
14+
mod codec_message_stream_handler;
15+
pub use codec_message_stream_handler::CodecMessageStreamHandler;
1216

1317
mod message_stream_handler;
1418
pub use message_stream_handler::MessageStreamHandler;
@@ -18,3 +22,6 @@ pub use message_allocator::{
1822
HeapMessageAllocator, HeapMessageHolder, HeapRequestHolder, HeapResponseHolder,
1923
RpcMessageAllocator, RpcMessageHolder, RpcRequestHolder, RpcResponseHolder,
2024
};
25+
26+
/// The default response body type produced by standard Codecs.
27+
pub type CodecRespB = bytes::Bytes;

0 commit comments

Comments
 (0)