wireman_core/descriptor/
response.rs1use std::ops::{Deref, DerefMut};
2
3use super::DynamicMessage;
4use prost_reflect::{MessageDescriptor, MethodDescriptor};
5
6#[derive(Debug, Clone)]
8pub struct ResponseMessage {
9 pub message: DynamicMessage,
10 method_desc: MethodDescriptor,
11}
12
13impl ResponseMessage {
14 #[must_use]
16 pub fn new(message_desc: MessageDescriptor, method_desc: MethodDescriptor) -> Self {
17 let message = DynamicMessage::new(message_desc);
18 Self {
19 message,
20 method_desc,
21 }
22 }
23
24 pub fn set_message(&mut self, message: DynamicMessage) {
26 self.message = message;
27 }
28}
29
30pub struct StreamingResponse {
32 pub inner: tonic::Streaming<ResponseMessage>,
33}
34
35impl StreamingResponse {
36 pub fn new(inner: tonic::Streaming<ResponseMessage>) -> Self {
37 Self { inner }
38 }
39}
40
41impl Deref for StreamingResponse {
42 type Target = tonic::Streaming<ResponseMessage>;
43
44 fn deref(&self) -> &Self::Target {
45 &self.inner
46 }
47}
48
49impl DerefMut for StreamingResponse {
50 fn deref_mut(&mut self) -> &mut Self::Target {
51 &mut self.inner
52 }
53}