Struct tskit::bindings::tsk_tree_t[][src]

#[repr(C)]
pub struct tsk_tree_t {
Show 26 fields pub tree_sequence: *const tsk_treeseq_t, pub left_root: tsk_id_t, pub parent: *mut tsk_id_t, pub left_child: *mut tsk_id_t, pub right_child: *mut tsk_id_t, pub left_sib: *mut tsk_id_t, pub right_sib: *mut tsk_id_t, pub num_nodes: tsk_size_t, pub options: tsk_flags_t, pub root_threshold: tsk_size_t, pub samples: *const tsk_id_t, pub left: f64, pub right: f64, pub index: tsk_id_t, pub num_samples: *mut tsk_id_t, pub num_tracked_samples: *mut tsk_id_t, pub marked: *mut u8, pub mark: u8, pub left_sample: *mut tsk_id_t, pub right_sample: *mut tsk_id_t, pub next_sample: *mut tsk_id_t, pub sites: *const tsk_site_t, pub sites_length: tsk_size_t, pub direction: c_int, pub left_index: tsk_id_t, pub right_index: tsk_id_t,
}
Expand description

@brief A single tree in a tree sequence.

@rst A tsk_tree_t object has two basic functions:

  1. Represent the state of a single tree in a tree sequence;
  2. Provide methods to transform this state into different trees in the sequence.

The state of a single tree in the tree sequence is represented using the quintuply linked encoding: please see the :ref:data model <sec_data_model_tree_structure> section for details on how this works. The left-to-right ordering of nodes in this encoding is arbitrary, and may change depending on the order in which trees are accessed within the sequence. Please see the :ref:sec_c_api_examples_tree_traversals examples for recommended usage.

On initialisation, a tree is in a “null” state: each sample is a root and there are no edges. We must call one of the ‘seeking’ methods to make the state of the tree object correspond to a particular tree in the sequence. Please see the :ref:sec_c_api_examples_tree_iteration examples for recommended usage.

@endrst

Fields

tree_sequence: *const tsk_treeseq_t

@brief The parent tree sequence.

left_root: tsk_id_t

@brief The leftmost root in the tree. Roots are siblings, and other roots can be found using right_sib.

parent: *mut tsk_id_t

@brief The parent of node u is parent[u]. Equal to TSK_NULL if node u is a root or is not a node in the current tree.

left_child: *mut tsk_id_t

@brief The leftmost child of node u is left_child[u]. Equal to TSK_NULL if node u is a leaf or is not a node in the current tree.

right_child: *mut tsk_id_t

@brief The rightmost child of node u is right_child[u]. Equal to TSK_NULL if node u is a leaf or is not a node in the current tree.

left_sib: *mut tsk_id_t

@brief The sibling to the left of node u is left_sib[u]. Equal to TSK_NULL if node u has no siblings to its left.

right_sib: *mut tsk_id_t

@brief The sibling to the right of node u is right_sib[u]. Equal to TSK_NULL if node u has no siblings to its right.

num_nodes: tsk_size_toptions: tsk_flags_troot_threshold: tsk_size_tsamples: *const tsk_id_tleft: f64right: f64index: tsk_id_tnum_samples: *mut tsk_id_tnum_tracked_samples: *mut tsk_id_tmarked: *mut u8mark: u8left_sample: *mut tsk_id_tright_sample: *mut tsk_id_tnext_sample: *mut tsk_id_tsites: *const tsk_site_tsites_length: tsk_size_tdirection: c_intleft_index: tsk_id_tright_index: tsk_id_t

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Return const pointer

Return mutable pointer

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.