use crate::io;
use axnet::{self, SocketAddr};
pub struct UdpSocket {
socket: axnet::UdpSocket,
}
impl UdpSocket {
pub fn bind(addr: SocketAddr) -> io::Result<Self> {
let mut socket = axnet::UdpSocket::new();
socket.bind(addr)?;
Ok(Self { socket })
}
pub fn local_addr(&self) -> io::Result<SocketAddr> {
self.socket.local_addr()
}
pub fn recv_from(&self, buf: &mut [u8]) -> io::Result<(usize, SocketAddr)> {
self.socket.recv_from(buf)
}
pub fn send_to(&self, buf: &[u8], addr: SocketAddr) -> io::Result<usize> {
self.socket.send_to(buf, addr)
}
pub fn connect(&mut self, addr: SocketAddr) -> io::Result<()> {
self.socket.connect(addr)
}
pub fn send(&self, buf: &[u8]) -> io::Result<usize> {
self.socket.send(buf)
}
pub fn recv(&self, buf: &mut [u8]) -> io::Result<usize> {
self.socket.recv(buf)
}
}