Transmute big endian `s6_addr` and `[u16; 8]` The old code already made the assumption to reinterpret `Ipv6Addr` as `[u16; 8]`. Glibc, Linux, FreeBSD, Win32 all makes this assumption. The main motivation of using union it to better optimize code. Godbolt: https://rust.godbolt.org/z/b4bGvo Const is introducing unsafe when transmuting. ref: * https://docs.microsoft.com/en-us/windows/win32/api/in6addr/ns-in6addr-in6_addr *1d6e424741/contrib/ntp/lib/isc/include/isc/ipv6.h (L63)
*8b531aa996/include/net/net_ip.h (L137)
* https://sourceware.org/git/?p=glibc.git;a=blob;f=inet/netinet/in.h;h=f6355c7efe5192b88337b136ef687fe9a5ed648c;hb=HEAD#l216