/// <summary>Split this 128-bit UUID into two 64-bit numbers</summary> /// <param name="high">Receives the first 8 bytes (in network order) of this UUID</param> /// <param name="low">Receives the last 8 bytes (in network order) of this UUID</param> public void Split(out ulong high, out ulong low) { unsafe { byte *buffer = stackalloc byte[16]; WriteUnsafe(m_packed, buffer); high = Uuid64.ReadUnsafe(buffer); low = Uuid64.ReadUnsafe(buffer + 8); } }
/// <summary>Split this 128-bit UUID into two 64-bit UUIDs</summary> /// <param name="high">Receives the first 8 bytes (in network order) of this UUID</param> /// <param name="low">Receives the last 8 bytes (in network order) of this UUID</param> public void Split(out Uuid64 high, out Uuid64 low) { unsafe { byte *buffer = stackalloc byte[16]; WriteUnsafe(m_packed, buffer); high = new Uuid64(Uuid64.ReadUnsafe(buffer)); low = new Uuid64(Uuid64.ReadUnsafe(buffer + 8)); } }
/// <summary>Split this 128-bit UUID into two 64-bit numbers</summary> /// <param name="high">Receives the first 8 bytes (in network order) of this UUID</param> /// <param name="mid">Receives the middle 4 bytes (in network order) of this UUID</param> /// <param name="low">Receives the last 4 bytes (in network order) of this UUID</param> public void Split(out ulong high, out uint mid, out uint low) { unsafe { byte *buffer = stackalloc byte[16]; WriteUnsafe(m_packed, buffer); high = Uuid64.ReadUnsafe(buffer); var id = Uuid64.ReadUnsafe(buffer + 8); mid = (uint)(id >> 32); low = (uint)id; } }