Crate tskit[−][src]
A rust interface to tskit.
This crate provides a mapping of the tskit C API to rust.
The result is an interface similar to the tskit Python interface,
but with all operations implemented using compiled code.
Features
Interface to the C library
TableCollectionwrapstsk_table_collection_t.TreeSequencewrapstsk_treeseq_t.Treewrapstsk_tree_t.- Tree iteration occurs via traits from streaming_iterator.
- Errors returned from C map to
TskitError::ErrorCode. Their string messages can be obtained by printing the error type.
Safety
- The types listed above handle all the memory management!
- All array accesses are range-checked.
- Object lifetimes are clear:
- Creating a tree sequence moves/consumes a table collection.
- Tree lifetimes are tied to that of the parent tree sequence.
- Table objects (
NodeTable, etc..) are only represented by non-owning, immutable types.
What is missing?
- A lot of wrappers to the C functions.
- Support for provenance tables.
- Tree sequence statistics!
Re-exports
pub use bindings::TSK_NODE_IS_SAMPLE; | |
pub use bindings::TSK_NO_BUILD_INDEXES; | |
pub use bindings::TSK_SAMPLE_LISTS; | |
pub use bindings::tsk_flags_t; | |
pub use bindings::tsk_id_t; | |
pub use bindings::tsk_size_t; | |
pub use error::TskitError; |
Modules
| bindings | Low-level (“unsafe”) bindings to the C API. |
| error | Error handling |
| ffi | Define traits related to wrapping tskit stuff |
| metadata | |
| types | “Other” tskit types live here. |
Structs
Enums
| NodeTraversalOrder | Specify the traversal order used by
|
Constants
| TSK_NULL | “Null” identifier value. |
Traits
| NodeIterator | Trait defining iteration over nodes. |
| NodeListGenerator | Interface for returning lists of node ids from
types implementing |
| TableAccess | Immutable access to tables. |
| TskitTypeAccess | Provide pointer access to underlying C types |
Functions
| c_api_major_version | C API major version |
| c_api_minor_version | C API minor version |
| c_api_patch_version | C API patch version |
| c_api_version | The C API version in MAJOR.MINOR.PATCH format |
| version | Version of the rust crate. |
Type Definitions
| TskReturnValue | Handles return codes from low-level tskit functions. |