Trait eos_rs::api::script_vars::ScriptVariableRead
source · pub trait ScriptVariableRead: PartialEq + Eq {
Show 13 methods
// Required method
fn id(&self) -> ScriptVariableId;
// Provided methods
fn descriptor(&self) -> &script_var { ... }
fn is_local(&self) -> bool { ... }
fn var_type(&self) -> ScriptVariableValueType { ... }
fn is_array(&self) -> bool { ... }
fn capacity(&self) -> usize { ... }
fn name(&self) -> &str { ... }
fn value_raw(&self) -> i32 { ... }
fn value_raw_indexed(&self, index: i32) -> i32 { ... }
fn value(&self) -> ScriptVariableValue { ... }
fn value_indexed(&self, index: i32) -> ScriptVariableValue { ... }
fn sum(&self) -> i32 { ... }
fn var_eq<S: AsScriptVariableId>(&self, other: S) -> bool { ... }
}Expand description
Read actions for script variables.
Required Methods§
sourcefn id(&self) -> ScriptVariableId
fn id(&self) -> ScriptVariableId
Returns the variable ID
Provided Methods§
sourcefn descriptor(&self) -> &script_var
fn descriptor(&self) -> &script_var
Loads a script variable descriptor for a given ID.
sourcefn is_local(&self) -> bool
fn is_local(&self) -> bool
Returns whether or not this is a local variable (as opposed to a global one).
sourcefn var_type(&self) -> ScriptVariableValueType
fn var_type(&self) -> ScriptVariableValueType
Returns the type of the variable
sourcefn capacity(&self) -> usize
fn capacity(&self) -> usize
Returns the number of elements in the array or 1 if it’s not an array.
sourcefn value_raw(&self) -> i32
fn value_raw(&self) -> i32
Loads the value of a script variable. If this variable is an array, the value at index 0 is returned.
This will return the value of the variable as a i32, no matter the type of the variable.
sourcefn value_raw_indexed(&self, index: i32) -> i32
fn value_raw_indexed(&self, index: i32) -> i32
Loads the value of a script variable at some index (for script variables that are arrays).
This will return the value of the variable as a i32, no matter the type of the variable.
sourcefn value(&self) -> ScriptVariableValue
fn value(&self) -> ScriptVariableValue
Loads the value of a script variable.
If this variable is an array, the value at index 0 is returned. Special case: If the type is a string, the entire string is returned.
This will return the value of the variable as an enum variant of ScriptVariableValue,
the variant will depend on the type of this variable. You can get the type with
Self::var_type and force a cast with that:
use eos_rs::api::script_vars::{ScriptVariableRead, UnwrapScriptVariableValueAs};
fn demo(script_var: impl ScriptVariableRead) {
// Assuming that `script_var` is a boolean variable. If it isn't, this will panic.
let value: bool = script_var.value().unwrap_as(script_var.var_type());
}sourcefn value_indexed(&self, index: i32) -> ScriptVariableValue
fn value_indexed(&self, index: i32) -> ScriptVariableValue
Loads the value of a script variable at some index (for script variables that are arrays).
Panics if the read is out of bounds.
Special case: If the type is a string, the character at the given position is returned (but still as a valid single-character CString).
This will return the value of the variable as an enum variant of ScriptVariableValue,
see Self::value for more information.
sourcefn sum(&self) -> i32
fn sum(&self) -> i32
Loads the sum of all values of the script variable (for script variables that are arrays).
sourcefn var_eq<S: AsScriptVariableId>(&self, other: S) -> bool
fn var_eq<S: AsScriptVariableId>(&self, other: S) -> bool
Checks if two script variables have equal values. For arrays, compares elementwise for the length of the first variable.
Hint: Implementors of this trait also implement PartialEq and Eq, so you can use those
instead if the underlying type is the same.