1use std::fmt;
2
3use heim_common::prelude::*;
4
5use crate::sys;
6
7pub struct CpuStats(sys::CpuStats);
11
12wrap!(CpuStats, sys::CpuStats);
13
14impl CpuStats {
15 pub fn ctx_switches(&self) -> u64 {
17 self.as_ref().ctx_switches()
18 }
19
20 pub fn interrupts(&self) -> u64 {
22 self.as_ref().interrupts()
23 }
24}
25
26impl fmt::Debug for CpuStats {
27 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
28 f.debug_struct("CpuStats")
29 .field("ctx_switches", &self.ctx_switches())
30 .field("interrupts", &self.interrupts())
31 .finish()
32 }
33}
34
35pub fn stats() -> impl Future<Output = Result<CpuStats>> {
39 sys::stats().map_ok(Into::into)
40}