pub struct State {
pub signature_variables: SignatureVariables,
pub resource_variables: ResourceVariables,
}Expand description
State in DyPDL.
Fields§
§signature_variables: SignatureVariablesVariables other than resource variables
resource_variables: ResourceVariablesResource variables
Implementations§
source§impl State
impl State
sourcepub fn is_satisfied<U: StateInterface>(
&self,
state: &U,
metadata: &StateMetadata
) -> bool
pub fn is_satisfied<U: StateInterface>( &self, state: &U, metadata: &StateMetadata ) -> bool
Returns if the given state is equal to the current state.
§Panics
Panics if the state metadata is wrong.
Trait Implementations§
source§impl PartialEq for State
impl PartialEq for State
source§impl StateInterface for State
impl StateInterface for State
source§fn get_number_of_set_variables(&self) -> usize
fn get_number_of_set_variables(&self) -> usize
Returns the number of set variables.
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
let object_type = model.add_object_type("object", 4).unwrap();
let set = model.create_set(object_type, &[0, 1, 2, 3]).unwrap();
model.add_set_variable("variable", object_type, set).unwrap();
let state = model.target.clone();
assert_eq!(state.get_number_of_set_variables(), 1);source§fn get_set_variable(&self, i: usize) -> &Set
fn get_set_variable(&self, i: usize) -> &Set
Returns the value of a set variable.
§Panics
Panics if no variable has the id of i.
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
let object_type = model.add_object_type("object", 4).unwrap();
let set = model.create_set(object_type, &[0, 1, 2, 3]).unwrap();
let variable = model.add_set_variable("variable", object_type, set.clone()).unwrap();
let state = model.target.clone();
assert_eq!(state.get_set_variable(variable.id()), &set);source§fn get_number_of_vector_variables(&self) -> usize
fn get_number_of_vector_variables(&self) -> usize
Returns the number of vector variables;
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
let object_type = model.add_object_type("object", 4).unwrap();
model.add_vector_variable("variable", object_type, vec![0, 1, 2, 3]).unwrap();
let state = model.target.clone();
assert_eq!(state.get_number_of_vector_variables(), 1);source§fn get_vector_variable(&self, i: usize) -> &Vector
fn get_vector_variable(&self, i: usize) -> &Vector
Returns the value of a vector variable.
§Panics
Panics if no variable has the id of i.
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
let object_type = model.add_object_type("object", 4).unwrap();
let variable = model.add_vector_variable("variable", object_type, vec![0, 1, 2, 3]).unwrap();
let state = model.target.clone();
assert_eq!(state.get_vector_variable(variable.id()), &vec![0, 1, 2, 3]);source§fn get_number_of_element_variables(&self) -> usize
fn get_number_of_element_variables(&self) -> usize
Returns the number of vector variables;
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
let object_type = model.add_object_type("object", 4).unwrap();
model.add_element_variable("variable", object_type, 0).unwrap();
let state = model.target.clone();
assert_eq!(state.get_number_of_element_variables(), 1);source§fn get_element_variable(&self, i: usize) -> Element
fn get_element_variable(&self, i: usize) -> Element
Returns the value of an element variable.
§Panics
Panics if no variable has the id of i.
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
let object_type = model.add_object_type("object", 4).unwrap();
let variable = model.add_element_variable("variable", object_type, 0).unwrap();
let state = model.target.clone();
assert_eq!(state.get_element_variable(variable.id()), 0);source§fn get_number_of_integer_variables(&self) -> usize
fn get_number_of_integer_variables(&self) -> usize
Returns the number of integer numeric variables;
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
model.add_integer_variable("variable", 0).unwrap();
let state = model.target.clone();
assert_eq!(state.get_number_of_integer_variables(), 1);source§fn get_integer_variable(&self, i: usize) -> Integer
fn get_integer_variable(&self, i: usize) -> Integer
Returns the value of an integer numeric variable.
§Panics
Panics if no variable has the id of i.
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
let variable = model.add_integer_variable("variable", 0).unwrap();
let state = model.target.clone();
assert_eq!(state.get_integer_variable(variable.id()), 0);source§fn get_number_of_continuous_variables(&self) -> usize
fn get_number_of_continuous_variables(&self) -> usize
Returns the number of continuous numeric variables;
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
model.add_continuous_variable("variable", 0.5).unwrap();
let state = model.target.clone();
assert_eq!(state.get_number_of_continuous_variables(), 1);source§fn get_continuous_variable(&self, i: usize) -> Continuous
fn get_continuous_variable(&self, i: usize) -> Continuous
Returns the value of a continuous numeric variable.
§Panics
Panics if no variable has the id of i.
§Examples
use approx::assert_relative_eq;
use dypdl::prelude::*;
let mut model = Model::default();
let variable = model.add_continuous_variable("variable", 0.5).unwrap();
let state = model.target.clone();
assert_relative_eq!(state.get_continuous_variable(variable.id()), 0.5);source§fn get_number_of_element_resource_variables(&self) -> usize
fn get_number_of_element_resource_variables(&self) -> usize
Returns the number of element resource variables;
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
let object_type = model.add_object_type("object", 4).unwrap();
model.add_element_resource_variable("variable", object_type, false, 0).unwrap();
let state = model.target.clone();
assert_eq!(state.get_number_of_element_resource_variables(), 1);source§fn get_element_resource_variable(&self, i: usize) -> Element
fn get_element_resource_variable(&self, i: usize) -> Element
Returns the value of an element resource variable.
§Panics
Panics if no variable has the id of i.
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
let object_type = model.add_object_type("object", 4).unwrap();
let variable = model.add_element_resource_variable("variable", object_type, false, 0).unwrap();
let state = model.target.clone();
assert_eq!(state.get_element_resource_variable(variable.id()), 0);source§fn get_number_of_integer_resource_variables(&self) -> usize
fn get_number_of_integer_resource_variables(&self) -> usize
Returns the number of integer resource variables;
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
model.add_integer_resource_variable("variable", false, 0).unwrap();
let state = model.target.clone();
assert_eq!(state.get_number_of_integer_resource_variables(), 1);source§fn get_integer_resource_variable(&self, i: usize) -> Integer
fn get_integer_resource_variable(&self, i: usize) -> Integer
Returns the value of an integer resource variable.
§Panics
Panics if no variable has the id of i.
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
let variable = model.add_integer_resource_variable("variable", false, 0).unwrap();
let state = model.target.clone();
assert_eq!(state.get_integer_resource_variable(variable.id()), 0);source§fn get_number_of_continuous_resource_variables(&self) -> usize
fn get_number_of_continuous_resource_variables(&self) -> usize
Returns the number of continuous resource variables;
§Examples
use dypdl::prelude::*;
let mut model = Model::default();
model.add_continuous_resource_variable("variable", false, 0.5).unwrap();
let state = model.target.clone();
assert_eq!(state.get_number_of_continuous_resource_variables(), 1);source§fn get_continuous_resource_variable(&self, i: usize) -> Continuous
fn get_continuous_resource_variable(&self, i: usize) -> Continuous
Returns the value of a continuous resource variable.
§Panics
Panics if no variable has the id of i.
§Examples
use approx::assert_relative_eq;
use dypdl::prelude::*;
let mut model = Model::default();
let variable = model.add_continuous_resource_variable("variable", false, 0.5).unwrap();
let state = model.target.clone();
assert_relative_eq!(state.get_continuous_resource_variable(variable.id()), 0.5);