From cfc627b2e2e0254bf5ad4bc6f7c30aca43f0b00e Mon Sep 17 00:00:00 2001 From: KodrAus Date: Mon, 20 Jan 2025 05:49:31 +1000 Subject: [PATCH] reduce bitshifts in from_u64_pair --- benches/new.rs | 23 +++++++++++++++++++++++ src/builder.rs | 19 +------------------ 2 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 benches/new.rs diff --git a/benches/new.rs b/benches/new.rs new file mode 100644 index 00000000..0d107ccd --- /dev/null +++ b/benches/new.rs @@ -0,0 +1,23 @@ +#![feature(test)] +extern crate test; + +use test::Bencher; +use uuid::Uuid; + +#[bench] +fn from_bytes(b: &mut Bencher) { + b.iter(|| Uuid::from_bytes([ + 0xF9, 0x16, 0x8C, 0x5E, 0xCE, 0xB2, 0x4F, 0xAA, 0xB6, 0xBF, 0x32, 0x9B, 0xF3, 0x9F, + 0xA1, 0xE4, + ])); +} + +#[bench] +fn from_u128(b: &mut Bencher) { + b.iter(|| Uuid::from_u128(0xa1a2a3a4b1b2c1c2d1d2d3d4d5d6d7d8)); +} + +#[bench] +fn from_u64_pair(b: &mut Bencher) { + b.iter(|| Uuid::from_u64_pair(0xa1a2a3a4b1b2c1c2, 0xd1d2d3d4d5d6d7d8)); +} diff --git a/src/builder.rs b/src/builder.rs index 449cd0ab..98a609b0 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -252,24 +252,7 @@ impl Uuid { /// ); /// ``` pub const fn from_u64_pair(high_bits: u64, low_bits: u64) -> Self { - Uuid::from_bytes([ - (high_bits >> 56) as u8, - (high_bits >> 48) as u8, - (high_bits >> 40) as u8, - (high_bits >> 32) as u8, - (high_bits >> 24) as u8, - (high_bits >> 16) as u8, - (high_bits >> 8) as u8, - high_bits as u8, - (low_bits >> 56) as u8, - (low_bits >> 48) as u8, - (low_bits >> 40) as u8, - (low_bits >> 32) as u8, - (low_bits >> 24) as u8, - (low_bits >> 16) as u8, - (low_bits >> 8) as u8, - low_bits as u8, - ]) + Uuid::from_u128((high_bits as u128 << 64) | low_bits as u128) } /// Creates a UUID using the supplied bytes.