1 | // Copyright 2006 The Android Open Source Project |
2 | // Copyright 2020 Yevhenii Reizner |
3 | // |
4 | // Use of this source code is governed by a BSD-style license that can be |
5 | // found in the LICENSE file. |
6 | |
7 | use crate::LengthU32; |
8 | |
9 | // Perfectly safe. |
10 | pub const LENGTH_U32_ONE: LengthU32 = unsafe { LengthU32::new_unchecked(1) }; |
11 | |
12 | pub fn left_shift(value: i32, shift: i32) -> i32 { |
13 | ((value as u32) << shift) as i32 |
14 | } |
15 | |
16 | pub fn left_shift64(value: i64, shift: i32) -> i64 { |
17 | ((value as u64) << shift) as i64 |
18 | } |
19 | |
20 | pub fn bound<T: Ord + Copy>(min: T, value: T, max: T) -> T { |
21 | max.min(value).max(min) |
22 | } |
23 | |