use std::ops::{Deref, DerefMut};
use super::DynamicMessage;
use prost_reflect::{MessageDescriptor, MethodDescriptor};
#[derive(Debug, Clone)]
pub struct ResponseMessage {
pub message: DynamicMessage,
method_desc: MethodDescriptor,
}
impl ResponseMessage {
#[must_use]
pub fn new(message_desc: MessageDescriptor, method_desc: MethodDescriptor) -> Self {
let message = DynamicMessage::new(message_desc);
Self {
message,
method_desc,
}
}
pub fn set_message(&mut self, message: DynamicMessage) {
self.message = message;
}
}
pub struct StreamingResponse {
pub inner: tonic::Streaming<ResponseMessage>,
}
impl StreamingResponse {
pub fn new(inner: tonic::Streaming<ResponseMessage>) -> Self {
Self { inner }
}
}
impl Deref for StreamingResponse {
type Target = tonic::Streaming<ResponseMessage>;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl DerefMut for StreamingResponse {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}