diff options
author | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-02-09 16:48:26 +0100 |
---|---|---|
committer | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-02-09 16:48:26 +0100 |
commit | cac22bec5ca72c5feaa774d335c9aaba7ee12f6f (patch) | |
tree | 5908be50e548ebb0551e4dc463948f14bc99e1ae | |
parent | 701f249245ecbd813e7da924fb9eafab5a7cfd0b (diff) | |
download | mt_rudp-cac22bec5ca72c5feaa774d335c9aaba7ee12f6f.tar.xz |
Get rid of Cell usage
-rw-r--r-- | src/lib.rs | 10 | ||||
-rw-r--r-- | src/recv.rs | 6 |
2 files changed, 5 insertions, 11 deletions
@@ -11,13 +11,7 @@ pub use prelude::*; use async_trait::async_trait; use num_enum::TryFromPrimitive; -use std::{ - cell::{Cell, OnceCell}, - collections::HashMap, - io, ops, - sync::Arc, - time::Instant, -}; +use std::{cell::OnceCell, collections::HashMap, io, ops, sync::Arc, time::Instant}; use tokio::{ sync::{mpsc, watch, Mutex, RwLock}, task::JoinSet, @@ -150,7 +144,7 @@ struct Split { } struct RecvChan { - packets: Vec<Cell<Option<Vec<u8>>>>, // char ** 😛 + packets: Vec<Option<Vec<u8>>>, // char ** 😛 splits: HashMap<u16, Split>, seqnum: u16, num: u8, diff --git a/src/recv.rs b/src/recv.rs index e685c9c..a88426f 100644 --- a/src/recv.rs +++ b/src/recv.rs @@ -2,7 +2,7 @@ use crate::{prelude::*, ticker, RecvChan, RecvWorker, RudpShare, Split}; use async_recursion::async_recursion; use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; use std::{ - cell::{Cell, OnceCell}, + cell::OnceCell, collections::HashMap, io, pin::Pin, @@ -34,7 +34,7 @@ impl<R: UdpReceiver, S: UdpSender> RecvWorker<R, S> { .map(|num| { Mutex::new(RecvChan { num, - packets: (0..REL_BUFFER).map(|_| Cell::new(None)).collect(), + packets: (0..REL_BUFFER).map(|_| None).collect(), seqnum: INIT_SEQNUM, splits: HashMap::new(), }) @@ -239,7 +239,7 @@ impl<R: UdpReceiver, S: UdpSender> RecvWorker<R, S> { println!("Rel"); let seqnum = cursor.read_u16::<BigEndian>()?; - chan.packets[to_seqnum(seqnum)].set(Some(cursor.remaining_slice().into())); + chan.packets[to_seqnum(seqnum)].replace(cursor.remaining_slice().into()); let mut ack_data = Vec::with_capacity(3); ack_data.write_u8(CtlType::Ack as u8)?; |