Trait lace::ColumnIndex

source ·
pub trait ColumnIndex: Clone + Debug {
    // Required methods
    fn col_ix(&self, codebook: &Codebook) -> Result<usize, IndexError>;
    fn col_str(&self) -> Option<&str>;
    fn col_usize(&self) -> Option<usize>;
}
Expand description

Trait defining items that can converted into a usize column index

Required Methods§

source

fn col_ix(&self, codebook: &Codebook) -> Result<usize, IndexError>

Use the codebook to return the integer column index

§Example
use lace::examples::Example;
use lace::ColumnIndex;

let oracle = Example::Animals.oracle().unwrap();

// "flys" is the 35th column (index 34)
let ix = "flys".col_ix(&oracle.codebook).unwrap();
assert_eq!(ix, 34);

// "antelope" os a row
let ix_res = "antelope".col_ix(&oracle.codebook);
assert!(ix_res.is_err());
source

fn col_str(&self) -> Option<&str>

Return the item as a string reference, if possible

§Example
use lace::ColumnIndex;

let ix = String::from("flys");
assert!(ix.col_str().is_some());

let ix = 10_usize;
assert!(ix.col_str().is_none());
source

fn col_usize(&self) -> Option<usize>

Return the item as a usize, if possible

§Example
use lace::ColumnIndex;

let ix = String::from("flys");
assert!(ix.col_usize().is_none());

let ix = 10_usize;
assert_eq!(ix.col_usize(), Some(10));

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl ColumnIndex for usize

source§

fn col_ix(&self, codebook: &Codebook) -> Result<usize, IndexError>

source§

fn col_str(&self) -> Option<&str>

source§

fn col_usize(&self) -> Option<usize>

source§

impl ColumnIndex for String

source§

fn col_ix(&self, codebook: &Codebook) -> Result<usize, IndexError>

source§

fn col_str(&self) -> Option<&str>

source§

fn col_usize(&self) -> Option<usize>

source§

impl<'a> ColumnIndex for &'a str

source§

fn col_ix(&self, codebook: &Codebook) -> Result<usize, IndexError>

source§

fn col_str(&self) -> Option<&str>

source§

fn col_usize(&self) -> Option<usize>

Implementors§