1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use std::pin::Pin;
use tokio_util::codec::Framed;
use cs_utils::futures::GenericCodec;
use tokio::io::{AsyncRead, AsyncWrite};
use serde::{Serialize, de::DeserializeOwned};
use crate::types::TFramedAsyncDuplex;
pub fn create_framed_stream<
T: Serialize + DeserializeOwned,
TAsyncDuplex: AsyncRead + AsyncWrite + Send + Unpin + ?Sized + 'static,
>(
channel: Box<TAsyncDuplex>,
) -> TFramedAsyncDuplex<T, TAsyncDuplex> {
return Framed::new(
Pin::new(channel),
GenericCodec::<T>::new(),
);
}