From 91b49a7786482e1bb7ffa3c7e8afe688e8f94afd Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Tue, 23 Jul 2024 06:57:14 +0000 Subject: [PATCH] add basic exchange util Signed-off-by: Jason Volk --- src/core/utils/mod.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/core/utils/mod.rs b/src/core/utils/mod.rs index bbd52829..d7b6a72a 100644 --- a/src/core/utils/mod.rs +++ b/src/core/utils/mod.rs @@ -26,8 +26,16 @@ pub use string::{str_from_bytes, string_from_bytes}; pub use sys::available_parallelism; pub use time::now_millis as millis_since_unix_epoch; +#[inline] pub fn clamp(val: T, min: T, max: T) -> T { cmp::min(cmp::max(val, min), max) } +#[inline] +pub fn exchange(state: &mut T, source: T) -> T { + let ret = state.clone(); + *state = source; + ret +} + #[must_use] pub fn generate_keypair() -> Vec { let mut value = rand::string(8).as_bytes().to_vec();