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 SymbolTable
pub fn new() -> SymbolTable
[src]
pub fn new() -> SymbolTable
pub 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) -> bool
pub 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]) -> bool
pub 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) -> usize
pub fn stringvar_count(&self) -> usize
[src]
pub fn stringvar_count(&self) -> usize
pub fn vector_count(&self) -> usize
[src]
pub fn vector_count(&self) -> usize
pub fn add_constants(&self) -> bool
[src]
pub fn add_constants(&self) -> bool
pub fn add_pi(&self) -> bool
[src]
pub fn add_pi(&self) -> bool
pub fn add_epsilon(&self) -> bool
[src]
pub fn add_epsilon(&self) -> bool
pub fn add_infinity(&self) -> bool
[src]
pub fn add_infinity(&self) -> bool
pub 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) -> bool
pub fn is_constant_node(&self, name: &str) -> bool
[src]
pub fn is_constant_node(&self, name: &str) -> bool
pub fn is_constant_string(&self, name: &str) -> bool
[src]
pub fn is_constant_string(&self, name: &str) -> bool
impl SymbolTable
[src]
impl SymbolTable
pub 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 SymbolTable
pub 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 SymbolTable
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,
[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 SymbolTable
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,
[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 SymbolTable
impl Drop for SymbolTable
[src]
impl Drop for SymbolTable
impl Debug for SymbolTable
[src]
impl Debug for SymbolTable
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Clone for SymbolTable
[src]
impl Clone for SymbolTable
fn clone(&self) -> SymbolTable
[src]
fn clone(&self) -> SymbolTable
Returns 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