1use serde::{Deserialize, Serialize};
2
3use crate::{budget::MemoryBudget, resource::MemoryResource};
4
5#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
7pub struct MemoryPoolReport {
8 pub resource_id: String,
10 pub requested: MemoryBudget,
12 pub effective_bytes: u64,
14 pub reserved_bytes: u64,
16 pub remaining_bytes: u64,
18 pub high_water_bytes: u64,
20}
21
22#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
24pub struct MemoryResourceReport {
25 pub resource: MemoryResource,
27 pub laddu_reserved_bytes: u64,
29 pub laddu_high_water_bytes: u64,
31}
32
33#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
35pub struct MemoryReport {
36 pub process: Option<ProcessMemoryReport>,
38 pub resources: Vec<MemoryResourceReport>,
40}
41
42#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
44pub struct ProcessMemoryReport {
45 pub resident_bytes: u64,
47 pub virtual_bytes: u64,
49 pub sampled_high_water_bytes: u64,
51}