Trait lace::RowIndex

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

Trait defining an item that can be converted into a row index

Required Methods§

source

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

Use the codebook to return the integer row index

§Example
use lace::examples::Example;
use lace::RowIndex;

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

// The first row
let ix = "antelope".row_ix(&oracle.codebook).unwrap();
assert_eq!(ix, 0);

// "flys" is a column name
let ix_res = "flys".row_ix(&oracle.codebook);
assert!(ix_res.is_err());
source

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

Return the item as a string reference, if possible

§Example
use lace::RowIndex;

let ix = String::from("antelope");
assert!(ix.row_str().is_some());

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

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

Return the item as a usize, if possible

§Example
use lace::RowIndex;

let ix = String::from("antelope");
assert!(ix.row_usize().is_none());

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

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl RowIndex for usize

source§

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

source§

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

source§

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

source§

impl RowIndex for String

source§

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

source§

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

source§

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

source§

impl<'a> RowIndex for &'a str

source§

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

source§

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

source§

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

Implementors§