aboutsummaryrefslogtreecommitdiff
path: root/src/proto.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/proto.rs')
-rw-r--r--src/proto.rs21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/proto.rs b/src/proto.rs
index 3e9fe20..7b8aa4b 100644
--- a/src/proto.rs
+++ b/src/proto.rs
@@ -6,16 +6,12 @@ use log::trace;
use async_std::io::prelude::WriteExt;
use async_std::io::ReadExt;
-use tokio::io::{ReadHalf, WriteHalf};
-use tokio::net::TcpStream;
use tokio::sync::mpsc;
use async_trait::async_trait;
use crate::error::*;
-use kuska_handshake::async_std::{BoxStreamRead, BoxStreamWrite, TokioCompat};
-
/// Priority of a request (click to read more about priorities).
///
/// This priority value is used to priorize messages
@@ -92,11 +88,14 @@ impl SendQueue {
#[async_trait]
pub(crate) trait SendLoop: Sync {
- async fn send_loop(
+ async fn send_loop<W>(
self: Arc<Self>,
mut msg_recv: mpsc::UnboundedReceiver<Option<(RequestID, RequestPriority, Vec<u8>)>>,
- mut write: BoxStreamWrite<TokioCompat<WriteHalf<TcpStream>>>,
- ) -> Result<(), Error> {
+ mut write: W,
+ ) -> Result<(), Error>
+ where
+ W: WriteExt + Unpin + Send + Sync,
+ {
let mut sending = SendQueue::new();
let mut should_exit = false;
while !should_exit || !sending.is_empty() {
@@ -167,10 +166,10 @@ pub(crate) trait RecvLoop: Sync + 'static {
// Returns true if we should stop receiving after this
async fn recv_handler(self: Arc<Self>, id: RequestID, msg: Vec<u8>);
- async fn recv_loop(
- self: Arc<Self>,
- mut read: BoxStreamRead<TokioCompat<ReadHalf<TcpStream>>>,
- ) -> Result<(), Error> {
+ async fn recv_loop<R>(self: Arc<Self>, mut read: R) -> Result<(), Error>
+ where
+ R: ReadExt + Unpin + Send + Sync,
+ {
let mut receiving = HashMap::new();
loop {
trace!("recv_loop: reading packet");