in libazureinit/src/status.rs [93:119]
fn swap_uuid_to_little_endian(mut bytes: [u8; 16]) -> Uuid {
let (d1, remainder) = bytes.split_at(std::mem::size_of::<u32>());
let d1 = d1
.try_into()
.map(u32::from_be_bytes)
.unwrap_or(0)
.to_ne_bytes();
let (d2, remainder) = remainder.split_at(std::mem::size_of::<u16>());
let d2 = d2
.try_into()
.map(u16::from_be_bytes)
.unwrap_or(0)
.to_ne_bytes();
let (d3, _) = remainder.split_at(std::mem::size_of::<u16>());
let d3 = d3
.try_into()
.map(u16::from_be_bytes)
.unwrap_or(0)
.to_ne_bytes();
let native_endian = d1.into_iter().chain(d2).chain(d3).collect::<Vec<_>>();
debug_assert_eq!(native_endian.len(), 8);
bytes[..native_endian.len()].copy_from_slice(&native_endian);
uuid::Uuid::from_bytes(bytes)
}