1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//! Functions for fiddling with bits and bitmasks.
use *;
/// Get the index of the most significant (set) bit in a 32-bit number.
///
/// Result is undefined when called with 0. This operation can also be stated
/// as "count leading zeroes" and "log base 2".
///
/// Note that this is a forced-inline function in a header, and not a public
/// API function available in the SDL library (which is to say, the code is
/// embedded in the calling program and the linker and dynamic loader will not
/// be able to find this function inside SDL itself).
///
/// ### Parameters
/// - `x`: the 32-bit value to examine.
///
/// ### Return value
/// Returns the index of the most significant bit, or -1 if the value is 0.
///
/// ### Thread safety
/// It is safe to call this function from any thread.
///
/// ### Availability
/// This function is available since SDL 3.2.0.
pub const
/// Determine if a unsigned 32-bit value has exactly one bit set.
///
/// If there are no bits set (`x` is zero), or more than one bit set, this
/// returns false. If any one bit is exclusively set, this returns true.
///
/// Note that this is a forced-inline function in a header, and not a public
/// API function available in the SDL library (which is to say, the code is
/// embedded in the calling program and the linker and dynamic loader will not
/// be able to find this function inside SDL itself).
///
/// ### Parameters
/// - `x`: the 32-bit value to examine.
///
/// ### Return value
/// Returns true if exactly one bit is set in `x`, false otherwise.
///
/// ### Thread safety
/// It is safe to call this function from any thread.
///
/// ### Availability
/// This function is available since SDL 3.2.0.
pub const
use crate*;