use serde::{Deserialize, Serialize};
use crate::{budget::MemoryBudget, resource::MemoryResource};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MemoryPoolReport {
pub resource_id: String,
pub requested: MemoryBudget,
pub effective_bytes: u64,
pub reserved_bytes: u64,
pub remaining_bytes: u64,
pub high_water_bytes: u64,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct MemoryResourceReport {
pub resource: MemoryResource,
pub laddu_reserved_bytes: u64,
pub laddu_high_water_bytes: u64,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct MemoryReport {
pub process: Option<ProcessMemoryReport>,
pub resources: Vec<MemoryResourceReport>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct ProcessMemoryReport {
pub resident_bytes: u64,
pub virtual_bytes: u64,
pub sampled_high_water_bytes: u64,
}