Enum demes::SizeFunction
source · #[non_exhaustive]pub enum SizeFunction {
Constant,
Exponential,
Linear,
}
Expand description
Specify how deme sizes change during an Epoch
.
Examples
let yaml = "
time_units: years
generation_time: 25
description:
A deme of 50 individuals that grew to 100 individuals
in the last 100 years.
Default behavior is that size changes are exponential.
demes:
- name: deme
epochs:
- start_size: 50
end_time: 100
- start_size: 50
end_size: 100
";
let graph = demes::loads(yaml).unwrap();
let deme = graph.get_deme_from_name("deme").unwrap();
assert_eq!(deme.num_epochs(), 2);
let last_epoch = deme.get_epoch(1).unwrap();
assert!(matches!(last_epoch.size_function(),
demes::SizeFunction::Exponential));
let first_epoch = deme.get_epoch(0).unwrap();
assert!(matches!(first_epoch.size_function(),
demes::SizeFunction::Constant));
Let’s change the function to linear for the second epoch:
let yaml = "
time_units: years
generation_time: 25
description:
A deme of 50 individuals that grew to 100 individuals
in the last 100 years.
demes:
- name: deme
epochs:
- start_size: 50
end_time: 100
- start_size: 50
end_size: 100
size_function: linear
";
let graph = demes::loads(yaml).unwrap();
let deme = graph.get_deme_from_name("deme").unwrap();
let last_epoch = deme.get_epoch(1).unwrap();
assert!(matches!(last_epoch.size_function(),
demes::SizeFunction::Linear));
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Trait Implementations§
source§impl Clone for SizeFunction
impl Clone for SizeFunction
source§fn clone(&self) -> SizeFunction
fn clone(&self) -> SizeFunction
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for SizeFunction
impl Debug for SizeFunction
source§impl<'de> Deserialize<'de> for SizeFunction
impl<'de> Deserialize<'de> for SizeFunction
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Display for SizeFunction
impl Display for SizeFunction
source§impl PartialEq<SizeFunction> for SizeFunction
impl PartialEq<SizeFunction> for SizeFunction
source§fn eq(&self, other: &SizeFunction) -> bool
fn eq(&self, other: &SizeFunction) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl Serialize for SizeFunction
impl Serialize for SizeFunction
impl Copy for SizeFunction
impl Eq for SizeFunction
impl StructuralEq for SizeFunction
impl StructuralPartialEq for SizeFunction
Auto Trait Implementations§
impl RefUnwindSafe for SizeFunction
impl Send for SizeFunction
impl Sync for SizeFunction
impl Unpin for SizeFunction
impl UnwindSafe for SizeFunction
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
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.