aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLizzy Fleckenstein <eliasfleckenstein@web.de>2023-02-09 16:48:26 +0100
committerLizzy Fleckenstein <eliasfleckenstein@web.de>2023-02-09 16:48:26 +0100
commitcac22bec5ca72c5feaa774d335c9aaba7ee12f6f (patch)
tree5908be50e548ebb0551e4dc463948f14bc99e1ae
parent701f249245ecbd813e7da924fb9eafab5a7cfd0b (diff)
downloadmt_rudp-cac22bec5ca72c5feaa774d335c9aaba7ee12f6f.tar.xz
Get rid of Cell usage
-rw-r--r--src/lib.rs10
-rw-r--r--src/recv.rs6
2 files changed, 5 insertions, 11 deletions
diff --git a/src/lib.rs b/src/lib.rs
index f0a91fe..334692a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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)?;