[][src]Struct tskit_rust::TableCollection

pub struct TableCollection { /* fields omitted */ }

A table collection.

This is a thin wrapper around the C type tsk_table_collection_t.

Current limitations

  1. No support for adding metadata to tables. In later versions, we will add separate "add row" functions to allow metadata.

The issue with metadata is just a temporary uncertainty in how best to handle the char * round trips to/from rust.

Examples

let mut tables = tskit_rust::TableCollection::new(100.).unwrap();
assert_eq!(tables.sequence_length(), 100.);

// Adding edges:

let rv = tables.add_edge(0., 53., 1, 11).unwrap();

// Add node:

let rv = tables.add_node(0, 3.2, tskit_rust::TSK_NULL, tskit_rust::TSK_NULL).unwrap();

// Get immutable reference to edge table
let edges = tables.edges();
assert_eq!(edges.num_rows(), 1);

// Get immutable reference to node table
let nodes = tables.nodes();
assert_eq!(nodes.num_rows(), 1);

Future road map

  1. Support all table types. Currently, we only support those needed for current goals in ongoing projects.
  2. For all add_foo functions, add an additional add_foo_with_metadata. (See above)
  3. Strengthen some of the error handling.

Addressing point 3 may require API breakage.

Implementations

impl TableCollection[src]

pub fn new(sequence_length: f64) -> Result<Self, TskitRustError>[src]

Create a new table collection with a sequence length.

pub fn new_from_file(filename: &str) -> Result<Self, TskitRustError>[src]

Load a table collection from a file.

pub fn as_ptr(&self) -> *const tsk_table_collection_t[src]

Access to raw C pointer as const tsk_table_collection_t *.

pub fn as_mut_ptr(&mut self) -> *mut tsk_table_collection_t[src]

Access to raw C pointer as tsk_table_collection_t *.

pub fn sequence_length(&self) -> f64[src]

Length of the sequence/"genome".

pub fn edges<'a>(&'a self) -> EdgeTable<'a>[src]

Get reference to the EdgeTable. Lifetime of return value is tied to (this) parent object.

pub fn nodes<'a>(&'a self) -> NodeTable<'a>[src]

Get reference to the NodeTable. Lifetime of return value is tied to (this) parent object.

pub fn sites<'a>(&'a self) -> SiteTable<'a>[src]

Get reference to the SiteTable. Lifetime of return value is tied to (this) parent object.

pub fn mutations<'a>(&'a self) -> MutationTable<'a>[src]

Get reference to the MutationTable. Lifetime of return value is tied to (this) parent object.

pub fn populations<'a>(&'a self) -> PopulationTable<'a>[src]

Get reference to the PopulationTable. Lifetime of return value is tied to (this) parent object.

pub fn add_edge(
    &mut self,
    left: f64,
    right: f64,
    parent: tsk_id_t,
    child: tsk_id_t
) -> TskReturnValue
[src]

Add a row to the edge table

pub fn add_node(
    &mut self,
    flags: tsk_flags_t,
    time: f64,
    population: tsk_id_t,
    individual: tsk_id_t
) -> TskReturnValue
[src]

Add a row to the node table

pub fn add_site(
    &mut self,
    position: f64,
    ancestral_state: Option<&[u8]>
) -> TskReturnValue
[src]

Add a row to the site table

pub fn add_mutation(
    &mut self,
    site: tsk_id_t,
    node: tsk_id_t,
    parent: tsk_id_t,
    time: f64,
    derived_state: Option<&[u8]>
) -> TskReturnValue
[src]

Add a row to the mutation table.

pub fn add_population(&mut self) -> TskReturnValue[src]

Add a row to the population_table

pub fn build_index(&mut self, flags: tsk_flags_t) -> TskReturnValue[src]

Build the "input" and "output" indexes for the edge table.

flags is currently unused, so pass in 0.

pub fn sort(&mut self, start: &Bookmark, options: tsk_flags_t) -> TskReturnValue[src]

Sort the tables.
The bookmark can be used to affect where sorting starts from for each table.

pub fn full_sort(&mut self) -> TskReturnValue[src]

Fully sort all functions. Implemented via a call to sort.

pub fn dump(&mut self, filename: &str, options: tsk_flags_t) -> TskReturnValue[src]

Dump the table collection to file. If tables are not sorted and indexes, this function will raise and error. In order to output such data, include TSK_NO_BUILD_INDEXES in options. Otherwisze, use 0 for options.

pub fn clear(&mut self, options: tsk_flags_t) -> TskReturnValue[src]

Clear the contents of all tables. Does not release memory. Memory will be released when the object goes out of scope.

pub fn equals(&self, other: &TableCollection, options: tsk_flags_t) -> bool[src]

Return true if self contains the same data as other, and false otherwise.

Trait Implementations

impl Drop for TableCollection[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.