const DEFAULT_AUX_STACK_SIZE: u32 = 64 * 1024;
const DEFAULT_HEAP_SIZE: u32 = 0;
const DEFAULT_EXEC_STACK_SIZE: u32 = 8 * 1024 * 1024;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct InstanceConfig {
pub(crate) aux_stack_size: u32,
pub(crate) heap_size: u32,
pub(crate) exec_stack_size: u32,
}
impl Default for InstanceConfig {
fn default() -> Self {
Self {
aux_stack_size: DEFAULT_AUX_STACK_SIZE,
heap_size: DEFAULT_HEAP_SIZE,
exec_stack_size: DEFAULT_EXEC_STACK_SIZE,
}
}
}
impl InstanceConfig {
pub fn new() -> Self {
Self::default()
}
pub fn aux_stack_size(&mut self, bytes: u32) -> &mut Self {
self.aux_stack_size = bytes;
self
}
pub fn heap_size(&mut self, bytes: u32) -> &mut Self {
self.heap_size = bytes;
self
}
pub fn exec_stack_size(&mut self, bytes: u32) -> &mut Self {
self.exec_stack_size = bytes;
self
}
}