pub(crate) mod memory_pool;
mod base;
pub use base::*;
mod memory_manage;
pub use memory_manage::*;
#[cfg(not(feature = "std"))]
use alloc::vec::Vec;
#[derive(Debug, Clone)]
pub enum PoolType {
ExclusivePages {
max_alloc_size: u64,
},
SlicedPages {
page_size: u64,
max_slice_size: u64,
},
}
#[derive(Debug, Clone)]
pub struct MemoryPoolOptions {
pub pool_type: PoolType,
pub dealloc_period: Option<u64>,
}
#[derive(Clone, Debug)]
pub enum MemoryConfiguration {
#[cfg(not(exclusive_memory_only))]
SubSlices,
ExclusivePages,
Custom {
pool_options: Vec<MemoryPoolOptions>,
},
}
#[allow(clippy::derivable_impls)]
impl Default for MemoryConfiguration {
fn default() -> Self {
#[cfg(exclusive_memory_only)]
{
MemoryConfiguration::ExclusivePages
}
#[cfg(not(exclusive_memory_only))]
{
MemoryConfiguration::SubSlices
}
}
}