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();