Struct exprtk_rs::SymbolTable [−][src]
pub struct SymbolTable { /* fields omitted */ }SymbolTable holds different variables. There are three types of variables:
Numberic variables, strings and numeric vectors of fixed size. (see
the documentation).
Many but not all of the methods of the ExprTk symbol_table
were implemented, and the API is sometimes different.
Methods
impl SymbolTable[src]
impl SymbolTablepub fn new() -> SymbolTable[src]
pub fn new() -> SymbolTablepub fn add_constant(
&mut self,
name: &str,
value: c_double
) -> Result<bool, InvalidName>[src]
pub fn add_constant(
&mut self,
name: &str,
value: c_double
) -> Result<bool, InvalidName>pub fn add_variable(
&mut self,
name: &str,
value: c_double
) -> Result<Option<usize>, InvalidName>[src]
pub fn add_variable(
&mut self,
name: &str,
value: c_double
) -> Result<Option<usize>, InvalidName>Adds a new variable. Returns the variable ID that can later be used for set_value
or None if a variable with the same name was already present.
pub fn set_value(&mut self, var_id: usize, value: c_double) -> bool[src]
pub fn set_value(&mut self, var_id: usize, value: c_double) -> boolpub fn value(&self, var_id: usize) -> Option<&c_double>[src]
pub fn value(&self, var_id: usize) -> Option<&c_double>pub fn get_value_ptr(&self, var_id: usize) -> Option<*mut c_double>[src]
pub fn get_value_ptr(&self, var_id: usize) -> Option<*mut c_double>Allows setting the values directly in an unsafe block, which may be useful, e.g. when benchmarking
Example:
use exprtk_rs::*; let mut symbol_table = SymbolTable::new(); let id = symbol_table.add_variable("a", 2.).unwrap().unwrap(); let ptr = symbol_table.get_value_ptr(id).unwrap(); let expr = Expression::new("a - 1", symbol_table).unwrap(); assert_eq!(expr.value(), 1.); unsafe { *ptr = 4.; } assert_eq!(expr.value(), 3.);
pub fn mut_value(&mut self, var_id: usize) -> Option<&mut c_double>[src]
pub fn mut_value(&mut self, var_id: usize) -> Option<&mut c_double>pub fn add_stringvar(
&mut self,
name: &str,
text: &[u8]
) -> Result<Option<usize>, InvalidName>[src]
pub fn add_stringvar(
&mut self,
name: &str,
text: &[u8]
) -> Result<Option<usize>, InvalidName>Adds a new string variable. Returns the variable ID that can later be used for set_string
or None if a variable with the same name was already present.
pub fn set_string(&mut self, var_id: usize, text: &[u8]) -> bool[src]
pub fn set_string(&mut self, var_id: usize, text: &[u8]) -> boolpub fn string(&self, var_id: usize) -> Option<&StringValue>[src]
pub fn string(&self, var_id: usize) -> Option<&StringValue>pub fn mut_string(&mut self, var_id: usize) -> Option<&mut StringValue>[src]
pub fn mut_string(&mut self, var_id: usize) -> Option<&mut StringValue>pub fn add_vector(
&mut self,
name: &str,
vec: &[c_double]
) -> Result<Option<usize>, InvalidName>[src]
pub fn add_vector(
&mut self,
name: &str,
vec: &[c_double]
) -> Result<Option<usize>, InvalidName>Adds a new vector variable. Returns the variable ID that can later be used for vector
or None if a variable with the same name was already present.
pub fn vector(&self, var_id: usize) -> Option<&[c_double]>[src]
pub fn vector(&self, var_id: usize) -> Option<&[c_double]>pub fn mut_vector(&mut self, var_id: usize) -> Option<&mut [c_double]>[src]
pub fn mut_vector(&mut self, var_id: usize) -> Option<&mut [c_double]>pub fn get_var_id(&self, name: &str) -> Option<usize>[src]
pub fn get_var_id(&self, name: &str) -> Option<usize>Returns the 'ID' of a variable or None if not found
pub fn get_string_id(&self, name: &str) -> Option<usize>[src]
pub fn get_string_id(&self, name: &str) -> Option<usize>Returns the 'ID' of a string or None if not found
pub fn get_vec_id(&self, name: &str) -> Option<usize>[src]
pub fn get_vec_id(&self, name: &str) -> Option<usize>Returns the 'ID' of a vector or None if not found
pub fn clear_variables(&mut self)[src]
pub fn clear_variables(&mut self)pub fn clear_strings(&mut self)[src]
pub fn clear_strings(&mut self)pub fn clear_vectors(&mut self)[src]
pub fn clear_vectors(&mut self)pub fn variable_count(&self) -> usize[src]
pub fn variable_count(&self) -> usizepub fn stringvar_count(&self) -> usize[src]
pub fn stringvar_count(&self) -> usizepub fn vector_count(&self) -> usize[src]
pub fn vector_count(&self) -> usizepub fn add_constants(&self) -> bool[src]
pub fn add_constants(&self) -> boolpub fn add_pi(&self) -> bool[src]
pub fn add_pi(&self) -> boolpub fn add_epsilon(&self) -> bool[src]
pub fn add_epsilon(&self) -> boolpub fn add_infinity(&self) -> bool[src]
pub fn add_infinity(&self) -> boolpub fn get_variable_names(&self) -> Vec<String>[src]
pub fn get_variable_names(&self) -> Vec<String>pub fn get_stringvar_names(&self) -> Vec<String>[src]
pub fn get_stringvar_names(&self) -> Vec<String>pub fn get_vector_names(&self) -> Vec<String>[src]
pub fn get_vector_names(&self) -> Vec<String>pub fn symbol_exists(&self, name: &str) -> bool[src]
pub fn symbol_exists(&self, name: &str) -> boolpub fn is_constant_node(&self, name: &str) -> bool[src]
pub fn is_constant_node(&self, name: &str) -> boolpub fn is_constant_string(&self, name: &str) -> bool[src]
pub fn is_constant_string(&self, name: &str) -> boolimpl SymbolTable[src]
impl SymbolTablepub fn add_func1<F>(&mut self, name: &str, func: F) -> Result<bool, InvalidName> where
F: Fn(c_double) -> c_double, [src]
pub fn add_func1<F>(&mut self, name: &str, func: F) -> Result<bool, InvalidName> where
F: Fn(c_double) -> c_double, Add a function. Returns true if the function was added / false
if the name was already present.
impl SymbolTable[src]
impl SymbolTablepub fn add_func2<F>(&mut self, name: &str, func: F) -> Result<bool, InvalidName> where
F: Fn(c_double, c_double) -> c_double, [src]
pub fn add_func2<F>(&mut self, name: &str, func: F) -> Result<bool, InvalidName> where
F: Fn(c_double, c_double) -> c_double, Add a function. Returns true if the function was added / false
if the name was already present.
impl SymbolTable[src]
impl SymbolTablepub fn add_func3<F>(&mut self, name: &str, func: F) -> Result<bool, InvalidName> where
F: Fn(c_double, c_double, c_double) -> c_double, [src]
pub fn add_func3<F>(&mut self, name: &str, func: F) -> Result<bool, InvalidName> where
F: Fn(c_double, c_double, c_double) -> c_double, Add a function. Returns true if the function was added / false
if the name was already present.
impl SymbolTable[src]
impl SymbolTablepub fn add_func4<F>(&mut self, name: &str, func: F) -> Result<bool, InvalidName> where
F: Fn(c_double, c_double, c_double, c_double) -> c_double, [src]
pub fn add_func4<F>(&mut self, name: &str, func: F) -> Result<bool, InvalidName> where
F: Fn(c_double, c_double, c_double, c_double) -> c_double, Add a function. Returns true if the function was added / false
if the name was already present.
Trait Implementations
impl Send for SymbolTable[src]
impl Send for SymbolTableimpl Drop for SymbolTable[src]
impl Drop for SymbolTableimpl Debug for SymbolTable[src]
impl Debug for SymbolTablefn fmt(&self, f: &mut Formatter) -> Result[src]
fn fmt(&self, f: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl Clone for SymbolTable[src]
impl Clone for SymbolTablefn clone(&self) -> SymbolTable[src]
fn clone(&self) -> SymbolTableReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
Auto Trait Implementations
impl !Sync for SymbolTable
impl !Sync for SymbolTable