Trait dypdl::TableInterface
source · pub trait TableInterface<T> {
// Required methods
fn add_table_1d<U>(
&mut self,
name: U,
v: Vec<T>,
) -> Result<Table1DHandle<T>, ModelErr>
where String: From<U>;
fn add_table_2d<U>(
&mut self,
name: U,
v: Vec<Vec<T>>,
) -> Result<Table2DHandle<T>, ModelErr>
where String: From<U>;
fn add_table_3d<U>(
&mut self,
name: U,
v: Vec<Vec<Vec<T>>>,
) -> Result<Table3DHandle<T>, ModelErr>
where String: From<U>;
fn add_table<U>(
&mut self,
name: U,
map: FxHashMap<Vec<Element>, T>,
default: T,
) -> Result<TableHandle<T>, ModelErr>
where String: From<U>;
}
Expand description
Trait for adding and updating tables of constants.
§Examples
use dypdl::prelude::*;
use rustc_hash::FxHashMap;
let mut model = Model::default();
assert!(model.add_table_1d("table_1d", vec![1, 2]).is_ok());
assert!(model.add_table_2d("table_2d", vec![vec![1, 2], vec![3, 4]]).is_ok());
assert!(
model.add_table_3d(
"table_3d",
vec![vec![vec![1, 2], vec![3, 4]], vec![vec![5, 6], vec![7, 8]]]
).is_ok()
);
let map = FxHashMap::from_iter(vec![(vec![0, 0, 0, 0], 1), (vec![1, 1, 1, 1], 2)]);
assert!(
model.add_table("table", map, 0).is_ok()
);
Required Methods§
sourcefn add_table_1d<U>(
&mut self,
name: U,
v: Vec<T>,
) -> Result<Table1DHandle<T>, ModelErr>
fn add_table_1d<U>( &mut self, name: U, v: Vec<T>, ) -> Result<Table1DHandle<T>, ModelErr>
sourcefn add_table_2d<U>(
&mut self,
name: U,
v: Vec<Vec<T>>,
) -> Result<Table2DHandle<T>, ModelErr>
fn add_table_2d<U>( &mut self, name: U, v: Vec<Vec<T>>, ) -> Result<Table2DHandle<T>, ModelErr>
sourcefn add_table_3d<U>(
&mut self,
name: U,
v: Vec<Vec<Vec<T>>>,
) -> Result<Table3DHandle<T>, ModelErr>
fn add_table_3d<U>( &mut self, name: U, v: Vec<Vec<Vec<T>>>, ) -> Result<Table3DHandle<T>, ModelErr>
Object Safety§
This trait is not object safe.