#[cfg(windows)]
mod affinity;
#[cfg(feature = "std")]
mod binding;
mod cache;
#[cfg(all(feature = "std", any(target_os = "linux", all(test, windows))))]
mod cpulist;
mod detect;
#[cfg(all(feature = "std", any(windows, target_os = "linux")))]
mod efficiency;
mod efficiency_view;
#[cfg(all(feature = "std", any(windows, target_os = "linux")))]
mod smt;
mod smt_view;
mod tables;
mod topology;
#[cfg(windows)]
pub use affinity::{ProcessorAffinityGroups, ProcessorGroupAffinity};
#[cfg(feature = "std")]
pub use binding::{bind_current_thread, BindError};
#[cfg(all(feature = "std", any(windows, target_os = "linux")))]
pub(crate) use cache::detect_cache_levels;
#[cfg(all(feature = "std", any(target_os = "linux", all(test, windows))))]
pub(crate) use cpulist::parse_cpu_list;
#[cfg(all(feature = "std", any(windows, target_os = "linux")))]
pub(crate) use efficiency::detect_efficiency_classes;
pub use efficiency_view::CpuEfficiencyView;
#[cfg(all(feature = "std", any(windows, target_os = "linux")))]
pub(crate) use smt::detect_core_ids;
pub use smt_view::CpuSmtView;
pub use tables::{build_adjacent_nodes, build_node_to_index};
#[cfg(any(test, all(feature = "std", any(windows, target_os = "linux"))))]
pub use tables::{build_default_distance_row, build_processor_to_node};
pub use tables::{LOCAL_DISTANCE, REMOTE_DISTANCE};
pub(crate) use topology::logical_processor_count;
pub use topology::CpuTopology;
#[cfg(all(feature = "std", any(windows, target_os = "linux")))]
pub(crate) const MAX_PROCESSOR_ID: usize = 32_768;
#[cfg(all(test, feature = "std"))]
mod tests;