pub struct EnergyUsageRecord {
pub app_id: i32,
pub user_id: i32,
pub timestamp: DateTime<Utc>,
pub charge_level: u64,
pub energy_consumed: u64,
pub auto_inc_id: u32,
}Expand description
One SRUM energy usage record: battery state and energy consumed per process.
Forensic value: correlates process activity with battery drain timeline; timestamps power-on/off cycles; detects anomalous overnight power usage.
Fields§
§app_id: i32Integer ID of the application (look up in crate::IdMapEntry).
user_id: i32Integer ID of the user account (look up in crate::IdMapEntry).
timestamp: DateTime<Utc>UTC timestamp of the measurement interval start.
charge_level: u64Remaining battery charge at interval end (mWh).
energy_consumed: u64Energy consumed by this process in the interval (mWh).
auto_inc_id: u32ESE page number used as AutoIncId proxy for gap detection. Gaps in this sequence indicate deleted records (anti-forensics). Not serialised to JSON output.
Trait Implementations§
Source§impl Clone for EnergyUsageRecord
impl Clone for EnergyUsageRecord
Source§fn clone(&self) -> EnergyUsageRecord
fn clone(&self) -> EnergyUsageRecord
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for EnergyUsageRecord
impl Debug for EnergyUsageRecord
Source§impl<'de> Deserialize<'de> for EnergyUsageRecord
impl<'de> Deserialize<'de> for EnergyUsageRecord
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for EnergyUsageRecord
impl RefUnwindSafe for EnergyUsageRecord
impl Send for EnergyUsageRecord
impl Sync for EnergyUsageRecord
impl Unpin for EnergyUsageRecord
impl UnsafeUnpin for EnergyUsageRecord
impl UnwindSafe for EnergyUsageRecord
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more