use ToOwned;
pub use *;
pub use *;
pub use *;
use crateget_system_info;
use NonZeroUsize;
use crateError;
/// This returns the number of logical processors.
///
/// On all Windows versions, this just calls `GetSystemInfo()` and returns `dwNumberOfProcessors`.
///
/// Not all logical processors are created equally, as some CPU cores may run at different speeds
/// from others or have different capabilities.
///
/// In the case of SMT-enabled CPUs, some logical processors (i.e. threads) might share the same CPU
/// cores as others. Additionally, not all physical cores are guaranteed to support SMT, as some
/// CPUs may have a mix of multi and single thread cores.
///
/// # Remarks
///
/// Returns `Err` if `dwNumberOfProcessors` was somehow 0. This should generally never happen.