Struct minidump_writer::minidump_format::GUID
source · pub struct GUID {
pub data1: u32,
pub data2: u16,
pub data3: u16,
pub data4: [u8; 8],
}
Expand description
A GUID as specified in Rpcdce.h
Matches the Microsoft struct of the same name.
§Display
There are two Display
implementations for GUIDs. The regular formatting is lowercase with
hyphens. The alternate formatting used with #
is the symbol server format (uppercase without
hyphens).
use minidump_common::format::GUID;
let guid = GUID { data1: 10, data2: 11, data3: 12, data4: [1,2,3,4,5,6,7,8] };
// default formatting
assert_eq!("0000000a-000b-000c-0102-030405060708", guid.to_string());
// symbol server formatting
assert_eq!("0000000A000B000C0102030405060708", format!("{:#}", guid));
Fields§
§data1: u32
§data2: u16
§data3: u16
§data4: [u8; 8]
Trait Implementations§
source§impl From<[u8; 16]> for GUID
impl From<[u8; 16]> for GUID
Creates a GUID from a raw byte array. It is assumed that the components in the array are in big-endian order.
use minidump_common::format::GUID;
let mut buf = [0u8; 16];
buf[0..4].copy_from_slice(&0xdeadc0deu32.to_be_bytes());
buf[4..6].copy_from_slice(&0xb105u16.to_be_bytes());
buf[6..8].copy_from_slice(&0xc0deu16.to_be_bytes());
buf[8..].copy_from_slice(&[1, 2, 3, 4, 5, 6, 7, 8]);
let guid: GUID = buf.into();
let expected = GUID { data1: 0xdeadc0de, data2: 0xb105, data3: 0xc0de, data4: [1, 2, 3, 4, 5, 6, 7, 8] };
assert_eq!(guid, expected);
source§impl<'a> TryIntoCtx<Endian> for &'a GUID
impl<'a> TryIntoCtx<Endian> for &'a GUID
source§impl TryIntoCtx<Endian> for GUID
impl TryIntoCtx<Endian> for GUID
impl Copy for GUID
impl Eq for GUID
impl StructuralPartialEq for GUID
Auto Trait Implementations§
impl Freeze for GUID
impl RefUnwindSafe for GUID
impl Send for GUID
impl Sync for GUID
impl Unpin for GUID
impl UnwindSafe for GUID
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)