Skip to content

Commit 30966f3

Browse files
authored
Merge pull request #924 from lmbollen/rx-token-consume-mutability
Change mutability of `RxToken`'s `consume` argument.
2 parents 4ed4f2a + 4055a19 commit 30966f3

9 files changed

+26
-22
lines changed

src/phy/fault_injector.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ pub struct RxToken<'a> {
274274
impl<'a> phy::RxToken for RxToken<'a> {
275275
fn consume<R, F>(self, f: F) -> R
276276
where
277-
F: FnOnce(&mut [u8]) -> R,
277+
F: FnOnce(&[u8]) -> R,
278278
{
279279
f(self.buf)
280280
}

src/phy/fuzz_injector.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
extern crate alloc;
2+
use alloc::vec::Vec;
3+
14
use crate::phy::{self, Device, DeviceCapabilities};
25
use crate::time::Instant;
36

@@ -92,11 +95,12 @@ pub struct RxToken<'a, Rx: phy::RxToken, F: Fuzzer + 'a> {
9295
impl<'a, Rx: phy::RxToken, FRx: Fuzzer> phy::RxToken for RxToken<'a, Rx, FRx> {
9396
fn consume<R, F>(self, f: F) -> R
9497
where
95-
F: FnOnce(&mut [u8]) -> R,
98+
F: FnOnce(&[u8]) -> R,
9699
{
97100
self.token.consume(|buffer| {
98-
self.fuzzer.fuzz_packet(buffer);
99-
f(buffer)
101+
let mut new_buffer: Vec<u8> = buffer.to_vec();
102+
self.fuzzer.fuzz_packet(&mut new_buffer);
103+
f(&mut new_buffer)
100104
})
101105
}
102106

src/phy/loopback.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ pub struct RxToken {
6262
}
6363

6464
impl phy::RxToken for RxToken {
65-
fn consume<R, F>(mut self, f: F) -> R
65+
fn consume<R, F>(self, f: F) -> R
6666
where
67-
F: FnOnce(&mut [u8]) -> R,
67+
F: FnOnce(&[u8]) -> R,
6868
{
69-
f(&mut self.buffer)
69+
f(&self.buffer)
7070
}
7171
}
7272

src/phy/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ impl phy::Device for StmPhy {
6262
struct StmPhyRxToken<'a>(&'a mut [u8]);
6363
6464
impl<'a> phy::RxToken for StmPhyRxToken<'a> {
65-
fn consume<R, F>(mut self, f: F) -> R
66-
where F: FnOnce(&mut [u8]) -> R
65+
fn consume<R, F>(self, f: F) -> R
66+
where F: FnOnce(& [u8]) -> R
6767
{
6868
// TODO: receive packet into buffer
69-
let result = f(&mut self.0);
69+
let result = f(&self.0);
7070
println!("rx called");
7171
result
7272
}
@@ -372,7 +372,7 @@ pub trait RxToken {
372372
/// packet bytes as argument.
373373
fn consume<R, F>(self, f: F) -> R
374374
where
375-
F: FnOnce(&mut [u8]) -> R;
375+
F: FnOnce(&[u8]) -> R;
376376

377377
/// The Packet ID associated with the frame received by this [`RxToken`]
378378
fn meta(&self) -> PacketMeta {

src/phy/pcap_writer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ pub struct RxToken<'a, Rx: phy::RxToken, S: PcapSink> {
219219
}
220220

221221
impl<'a, Rx: phy::RxToken, S: PcapSink> phy::RxToken for RxToken<'a, Rx, S> {
222-
fn consume<R, F: FnOnce(&mut [u8]) -> R>(self, f: F) -> R {
222+
fn consume<R, F: FnOnce(&[u8]) -> R>(self, f: F) -> R {
223223
self.token.consume(|buffer| {
224224
match self.mode {
225225
PcapMode::Both | PcapMode::RxOnly => self

src/phy/raw_socket.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,11 @@ pub struct RxToken {
104104
}
105105

106106
impl phy::RxToken for RxToken {
107-
fn consume<R, F>(mut self, f: F) -> R
107+
fn consume<R, F>(self, f: F) -> R
108108
where
109-
F: FnOnce(&mut [u8]) -> R,
109+
F: FnOnce(&[u8]) -> R,
110110
{
111-
f(&mut self.buffer[..])
111+
f(&self.buffer[..])
112112
}
113113
}
114114

src/phy/tracer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ pub struct RxToken<Rx: phy::RxToken> {
9494
impl<Rx: phy::RxToken> phy::RxToken for RxToken<Rx> {
9595
fn consume<R, F>(self, f: F) -> R
9696
where
97-
F: FnOnce(&mut [u8]) -> R,
97+
F: FnOnce(&[u8]) -> R,
9898
{
9999
self.token.consume(|buffer| {
100100
(self.writer)(

src/phy/tuntap_interface.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,11 @@ pub struct RxToken {
9393
}
9494

9595
impl phy::RxToken for RxToken {
96-
fn consume<R, F>(mut self, f: F) -> R
96+
fn consume<R, F>(self, f: F) -> R
9797
where
98-
F: FnOnce(&mut [u8]) -> R,
98+
F: FnOnce(&[u8]) -> R,
9999
{
100-
f(&mut self.buffer[..])
100+
f(&self.buffer[..])
101101
}
102102
}
103103

src/tests.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,11 @@ pub struct RxToken {
120120
}
121121

122122
impl phy::RxToken for RxToken {
123-
fn consume<R, F>(mut self, f: F) -> R
123+
fn consume<R, F>(self, f: F) -> R
124124
where
125-
F: FnOnce(&mut [u8]) -> R,
125+
F: FnOnce(&[u8]) -> R,
126126
{
127-
f(&mut self.buffer)
127+
f(&self.buffer)
128128
}
129129
}
130130

0 commit comments

Comments
 (0)