mirror of
https://github.com/fluencelabs/parity-wasm
synced 2025-06-18 17:31:42 +00:00
few doc comments
This commit is contained in:
@ -15,6 +15,7 @@ pub struct TableInstance {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl TableInstance {
|
impl TableInstance {
|
||||||
|
/// New instance of the table
|
||||||
pub fn new(variable_type: VariableType, table_type: &TableType) -> Result<Arc<Self>, Error> {
|
pub fn new(variable_type: VariableType, table_type: &TableType) -> Result<Arc<Self>, Error> {
|
||||||
Ok(Arc::new(TableInstance {
|
Ok(Arc::new(TableInstance {
|
||||||
variable_type: variable_type,
|
variable_type: variable_type,
|
||||||
@ -24,6 +25,7 @@ impl TableInstance {
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get the specific value in the table
|
||||||
pub fn get(&self, offset: u32) -> Result<RuntimeValue, Error> {
|
pub fn get(&self, offset: u32) -> Result<RuntimeValue, Error> {
|
||||||
let buffer = self.buffer.read();
|
let buffer = self.buffer.read();
|
||||||
let buffer_len = buffer.len();
|
let buffer_len = buffer.len();
|
||||||
@ -32,6 +34,7 @@ impl TableInstance {
|
|||||||
.ok_or(Error::Table(format!("trying to read table item with index {} when there are only {} items", offset, buffer_len)))
|
.ok_or(Error::Table(format!("trying to read table item with index {} when there are only {} items", offset, buffer_len)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set the table value from raw slice
|
||||||
pub fn set_raw(&self, mut offset: u32, value: &[u32]) -> Result<(), Error> {
|
pub fn set_raw(&self, mut offset: u32, value: &[u32]) -> Result<(), Error> {
|
||||||
for val in value {
|
for val in value {
|
||||||
match self.variable_type {
|
match self.variable_type {
|
||||||
@ -43,6 +46,7 @@ impl TableInstance {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set the table from runtime variable value
|
||||||
pub fn set(&self, offset: u32, value: RuntimeValue) -> Result<(), Error> {
|
pub fn set(&self, offset: u32, value: RuntimeValue) -> Result<(), Error> {
|
||||||
let mut buffer = self.buffer.write();
|
let mut buffer = self.buffer.write();
|
||||||
let buffer_len = buffer.len();
|
let buffer_len = buffer.len();
|
||||||
|
@ -30,6 +30,7 @@ pub struct VariableInstance {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl VariableInstance {
|
impl VariableInstance {
|
||||||
|
/// New variable instance
|
||||||
pub fn new(is_mutable: bool, variable_type: VariableType, value: RuntimeValue) -> Result<Self, Error> {
|
pub fn new(is_mutable: bool, variable_type: VariableType, value: RuntimeValue) -> Result<Self, Error> {
|
||||||
if !value.is_null() && value.variable_type() != Some(variable_type) {
|
if !value.is_null() && value.variable_type() != Some(variable_type) {
|
||||||
return Err(Error::Variable(format!("trying to initialize variable of type {:?} with value of type {:?}", variable_type, value.variable_type())));
|
return Err(Error::Variable(format!("trying to initialize variable of type {:?} with value of type {:?}", variable_type, value.variable_type())));
|
||||||
@ -42,14 +43,17 @@ impl VariableInstance {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// New global variable
|
||||||
pub fn new_global(global_type: &GlobalType, value: RuntimeValue) -> Result<Self, Error> {
|
pub fn new_global(global_type: &GlobalType, value: RuntimeValue) -> Result<Self, Error> {
|
||||||
Self::new(global_type.is_mutable(), global_type.content_type().into(), value)
|
Self::new(global_type.is_mutable(), global_type.content_type().into(), value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get the value of the variable instance
|
||||||
pub fn get(&self) -> RuntimeValue {
|
pub fn get(&self) -> RuntimeValue {
|
||||||
self.value.read().clone()
|
self.value.read().clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set the value of the variable instance
|
||||||
pub fn set(&self, value: RuntimeValue) -> Result<(), Error> {
|
pub fn set(&self, value: RuntimeValue) -> Result<(), Error> {
|
||||||
if !self.is_mutable {
|
if !self.is_mutable {
|
||||||
return Err(Error::Variable("trying to update immutable variable".into()));
|
return Err(Error::Variable("trying to update immutable variable".into()));
|
||||||
|
Reference in New Issue
Block a user