pub struct UdpReader<'w, W5500> { /* private fields */ }
Expand description
Streaming reader for a UDP socket buffer.
This implements the Read
and Seek
traits.
Created with Udp::udp_reader
.
Example
use w5500_hl::{
io::Read,
ll::{Registers, Sn::Sn0},
net::{Ipv4Addr, SocketAddrV4},
Udp, UdpReader,
};
const DEST: SocketAddrV4 = SocketAddrV4::new(Ipv4Addr::new(192, 0, 2, 1), 8081);
w5500.udp_bind(Sn0, 8080)?;
let mut reader: UdpReader<_> = w5500.udp_reader(Sn0)?;
let mut buf: [u8; 8] = [0; 8];
reader.read_exact(&mut buf)?;
let mut other_buf: [u8; 16] = [0; 16];
reader.read_exact(&mut buf)?;
// mark the datagram as done, removing it from the queue
reader.done()?;
Implementations§
source§impl<'a, W: Registers> UdpReader<'a, W>
impl<'a, W: Registers> UdpReader<'a, W>
sourcepub fn header(&self) -> &UdpHeader
pub fn header(&self) -> &UdpHeader
Get the UDP header.
Example
use w5500_hl::{
ll::{Registers, Sn::Sn0},
net::{Ipv4Addr, SocketAddrV4},
Udp, UdpHeader, UdpReader,
};
const DEST: SocketAddrV4 = SocketAddrV4::new(Ipv4Addr::new(192, 0, 2, 1), 8081);
w5500.udp_bind(Sn0, 8080)?;
let reader: UdpReader<_> = w5500.udp_reader(Sn0)?;
let header: &UdpHeader = reader.header();
Trait Implementations§
source§impl<'w, W5500: Registers> Read<<W5500 as Registers>::Error> for UdpReader<'w, W5500>
impl<'w, W5500: Registers> Read<<W5500 as Registers>::Error> for UdpReader<'w, W5500>
source§impl<'w, W5500> Seek for UdpReader<'w, W5500>
impl<'w, W5500> Seek for UdpReader<'w, W5500>
source§fn seek<E>(&mut self, pos: SeekFrom) -> Result<(), Error<E>>
fn seek<E>(&mut self, pos: SeekFrom) -> Result<(), Error<E>>
Seek to an offset, in bytes, within the socket buffer. Read more
source§fn stream_len(&self) -> u16
fn stream_len(&self) -> u16
Return the length of the stream, in bytes. Read more
source§fn stream_position(&self) -> u16
fn stream_position(&self) -> u16
Returns the current seek position from the start of the stream.
Auto Trait Implementations§
impl<'w, W5500> RefUnwindSafe for UdpReader<'w, W5500>where W5500: RefUnwindSafe,
impl<'w, W5500> Send for UdpReader<'w, W5500>where W5500: Send,
impl<'w, W5500> Sync for UdpReader<'w, W5500>where W5500: Sync,
impl<'w, W5500> Unpin for UdpReader<'w, W5500>
impl<'w, W5500> !UnwindSafe for UdpReader<'w, W5500>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more