From d6574b8c2350f03e1ba136be87cc826403874212 Mon Sep 17 00:00:00 2001 From: Jonah Dahlquist Date: Tue, 19 Jan 2021 21:47:08 -0800 Subject: [PATCH] Removed refcell container from Interface --- src/interface.rs | 8 +++----- src/udp.rs | 14 +++++++------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/interface.rs b/src/interface.rs index 1ab90c6..2b42de2 100644 --- a/src/interface.rs +++ b/src/interface.rs @@ -9,18 +9,16 @@ use crate::uninitialized_device::{InitializeError, UninitializedDevice}; use crate::{MacAddress, Mode}; pub struct Interface { - pub device: RefCell>, + pub device: Device, } impl Interface { fn new(device: Device) -> Self { - Self { - device: RefCell::new(device), - } + Self { device } } pub fn release(self) -> Device { - self.device.into_inner() + self.device } } diff --git a/src/udp.rs b/src/udp.rs index c17ff6a..346bcf1 100644 --- a/src/udp.rs +++ b/src/udp.rs @@ -187,7 +187,7 @@ where type Error = UdpSocketError; fn socket(&mut self) -> Result { - let mut device = self.device.borrow_mut(); + let mut device = &mut self.device; if let Some(socket) = device.take_socket() { Ok(UdpSocket::new(socket)) } else { @@ -200,7 +200,7 @@ where socket: &mut Self::UdpSocket, remote: SocketAddr, ) -> Result<(), Self::Error> { - let mut device = self.device.borrow_mut(); + let mut device = &mut self.device; if let SocketAddr::V4(remote) = remote { // TODO find a random port socket.open(&mut device.bus, 4000)?; @@ -211,7 +211,7 @@ where } } fn send(&mut self, socket: &mut Self::UdpSocket, buffer: &[u8]) -> nb::Result<(), Self::Error> { - socket.send(&mut self.device.borrow_mut().bus, buffer)?; + socket.send(&mut self.device.bus, buffer)?; Ok(()) } fn receive( @@ -219,10 +219,10 @@ where socket: &mut Self::UdpSocket, buffer: &mut [u8], ) -> nb::Result<(usize, SocketAddr), Self::Error> { - Ok(socket.receive(&mut self.device.borrow_mut().bus, buffer)?) + Ok(socket.receive(&mut self.device.bus, buffer)?) } fn close(&mut self, socket: Self::UdpSocket) -> Result<(), Self::Error> { - let mut device = self.device.borrow_mut(); + let mut device = &mut self.device; socket.close(&mut device.bus)?; device.release_socket(socket.socket); Ok(()) @@ -235,7 +235,7 @@ where HostImpl: Host, { fn bind(&mut self, socket: &mut Self::UdpSocket, local_port: u16) -> Result<(), Self::Error> { - let mut device = self.device.borrow_mut(); + let mut device = &mut self.device; socket.open(&mut device.bus, local_port)?; Ok(()) } @@ -246,7 +246,7 @@ where buffer: &[u8], ) -> nb::Result<(), Self::Error> { if let SocketAddr::V4(remote) = remote { - socket.send_to(&mut self.device.borrow_mut().bus, remote, buffer)?; + socket.send_to(&mut self.device.bus, remote, buffer)?; Ok(()) } else { Err(nb::Error::Other(Self::Error::UnsupportedAddress))