use std::fmt;
use heim_common::prelude::*;
use crate::{sys, units};
#[derive(heim_derive::ImplWrap)]
pub struct CpuFrequency(sys::CpuFrequency);
impl CpuFrequency {
pub fn current(&self) -> units::Frequency {
self.as_ref().current()
}
pub fn min(&self) -> Option<units::Frequency> {
self.as_ref().min()
}
pub fn max(&self) -> Option<units::Frequency> {
self.as_ref().max()
}
}
impl fmt::Debug for CpuFrequency {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("CpuFrequency")
.field("current", &self.current())
.field("min", &self.min())
.field("max", &self.max())
.finish()
}
}
pub fn frequency() -> impl Future<Output = Result<CpuFrequency>> {
sys::frequency().map_ok(Into::into)
}