pub struct PopulationTable { /* private fields */ }Expand description
A population table
§Examples
use tskit::PopulationTable;
let mut populations = PopulationTable::default();
let rowid = populations.add_row().unwrap();
assert_eq!(rowid, 0);
assert_eq!(populations.num_rows(), 1);An example with metadata.
This requires the cargo feature "derive" for tskit.
use tskit::PopulationTable;
#[derive(serde::Serialize,
serde::Deserialize,
tskit::metadata::PopulationMetadata)]
#[serializer("serde_json")]
struct PopulationMetadata {
name: String,
}
let metadata = PopulationMetadata{name: "YRB".to_string()};
let mut populations = PopulationTable::default();
let rowid = populations.add_row_with_metadata(&metadata).unwrap();
assert_eq!(rowid, 0);
match populations.metadata::<PopulationMetadata>(rowid) {
// rowid is in range, decoding succeeded
Some(Ok(decoded)) => assert_eq!(&decoded.name, "YRB"),
// rowid is in range, decoding failed
Some(Err(e)) => panic!("error decoding metadata: {:?}", e),
None => panic!("row id out of range")
}Implementations§
Source§impl PopulationTable
impl PopulationTable
Sourcepub fn metadata<T: PopulationMetadata>(
&self,
row: impl Into<PopulationId>,
) -> Option<Result<T, TskitError>>
pub fn metadata<T: PopulationMetadata>( &self, row: impl Into<PopulationId>, ) -> Option<Result<T, TskitError>>
Retrieve decoded metadata for a row.
§Returns
Some(Ok(T))ifrowis valid and decoding succeeded.Some(Err(_))ifrowis valid and decoding failed.Noneifrowis not valid or the row has no metadata.
§Errors
TskitError::MetadataErrorif decoding fails.
§Examples.
The big-picture semantics are the same for all table types.
See crate::IndividualTable::metadata for examples.
Sourcepub fn iter(&self) -> impl Iterator<Item = Population<'_>>
pub fn iter(&self) -> impl Iterator<Item = Population<'_>>
Return an iterator over rows of the table.
The value of the iterator is crate::Population.
Sourcepub fn row<P: Into<PopulationId> + Copy>(&self, r: P) -> Option<Population<'_>>
pub fn row<P: Into<PopulationId> + Copy>(&self, r: P) -> Option<Population<'_>>
pub fn add_row(&mut self) -> Result<PopulationId, TskitError>
pub fn add_row_with_metadata<M: PopulationMetadata>( &mut self, metadata: &M, ) -> Result<PopulationId, TskitError>
Sourcepub fn clear(&mut self) -> Result<i32, TskitError>
pub fn clear(&mut self) -> Result<i32, TskitError>
Clear all data from the table
Trait Implementations§
Source§impl Debug for PopulationTable
impl Debug for PopulationTable
Source§impl Default for PopulationTable
impl Default for PopulationTable
Source§fn default() -> PopulationTable
fn default() -> PopulationTable
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for PopulationTable
impl RefUnwindSafe for PopulationTable
impl Send for PopulationTable
impl Sync for PopulationTable
impl Unpin for PopulationTable
impl UnsafeUnpin for PopulationTable
impl UnwindSafe for PopulationTable
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more