diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/main.rs b/src/main.rs index 549788b..4c27d26 100644 --- a/src/main.rs +++ b/src/main.rs @@ -88,13 +88,11 @@ fn main() -> Result<()> { loop { let mut buf = [MaybeUninit::new(0); BUFSIZE]; let (n, remote) = sock.recv_from(&mut buf)?; - let buf = &buf - .iter() - .take(n) - .map(|p| unsafe { p.assume_init() }) - .collect::<Vec<u8>>(); - let remote = remote.as_socket_ipv6().unwrap(); + // See unstable `MaybeUninit::slice_assume_init_ref`. + let buf = unsafe { &*(&buf as *const [MaybeUninit<u8>] as *const [u8]) }; + + let buf = &buf[..n]; } } |