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§

source

fn add_table_1d<U>( &mut self, name: U, v: Vec<T>, ) -> Result<Table1DHandle<T>, ModelErr>
where String: From<U>,

Adds and returns a 1D table.

§Errors

If the name is already used.

source

fn add_table_2d<U>( &mut self, name: U, v: Vec<Vec<T>>, ) -> Result<Table2DHandle<T>, ModelErr>
where String: From<U>,

Adds and returns a 2D table.

§Errors

If the name is already used.

source

fn add_table_3d<U>( &mut self, name: U, v: Vec<Vec<Vec<T>>>, ) -> Result<Table3DHandle<T>, ModelErr>
where String: From<U>,

Adds and returns a 3D table.

§Errors

If the name is already used.

source

fn add_table<U>( &mut self, name: U, map: FxHashMap<Vec<Element>, T>, default: T, ) -> Result<TableHandle<T>, ModelErr>
where String: From<U>,

Adds and returns a 3D table.

§Errors

If the name is already used.

Object Safety§

This trait is not object safe.

Implementors§