diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-10-14 16:39:33 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-10-14 16:39:33 +0200 |
commit | c800e86ece70d28ba463db8c4c5251c0266d11dd (patch) | |
tree | 2beb14ecfe0c57446c45c9fab727f0485deeeb3b /src/main.rs | |
parent | 1f9546834d304bbf547d36765d930ec7280d4853 (diff) |
assume init on received packets without memory allocation
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]; } } |