diff --git a/src/interpreter/memory.rs b/src/interpreter/memory.rs index 0f54fc3..eb88536 100644 --- a/src/interpreter/memory.rs +++ b/src/interpreter/memory.rs @@ -95,10 +95,18 @@ impl MemoryInstance { } /// Return linear memory limits. - pub fn limits(&self) -> &ResizableLimits { + pub(crate) fn limits(&self) -> &ResizableLimits { &self.limits } + pub fn initial_size(&self) -> u32 { + self.limits.initial() + } + + pub fn maximum_size(&self) -> Option { + self.limits.maximum() + } + /// Return linear memory size (in pages). pub fn size(&self) -> u32 { self.buffer.borrow().len() as u32 / LINEAR_MEMORY_PAGE_SIZE diff --git a/src/interpreter/table.rs b/src/interpreter/table.rs index b001f86..904da11 100644 --- a/src/interpreter/table.rs +++ b/src/interpreter/table.rs @@ -50,10 +50,18 @@ impl TableInstance { } /// Return table limits. - pub fn limits(&self) -> &ResizableLimits { + pub(crate) fn limits(&self) -> &ResizableLimits { &self.limits } + pub fn initial_size(&self) -> u32 { + self.limits.initial() + } + + pub fn maximum_size(&self) -> Option { + self.limits.maximum() + } + /// Get the specific value in the table pub fn get(&self, offset: u32) -> Result { let buffer = self.buffer.borrow();