few doc comments

This commit is contained in:
NikVolf
2017-05-22 19:54:56 +03:00
parent 533c3a0c50
commit 5aa419d3d5
2 changed files with 8 additions and 0 deletions

View File

@ -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();

View File

@ -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()));