diff --git a/demes-forward/src/graph.rs b/demes-forward/src/graph.rs index 1d256ae3..8d8d64c7 100644 --- a/demes-forward/src/graph.rs +++ b/demes-forward/src/graph.rs @@ -142,7 +142,7 @@ fn apply_size_function( } } -#[derive(Debug)] +#[derive(Debug, Clone)] struct Deme { deme: demes::Deme, status: DemeStatus, @@ -151,7 +151,7 @@ struct Deme { proportions: Vec, } -#[derive(Debug)] +#[derive(Debug, Clone)] enum DemeStatus { /// Before the deme first appears. /// (Moving forwards in time.) @@ -306,7 +306,7 @@ fn update_demes( } /// Forward-time representation of a [`demes::Graph`]. -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct ForwardGraph { graph: demes::Graph, model_times: ModelTime, diff --git a/demes-forward/src/square_matrix.rs b/demes-forward/src/square_matrix.rs index cae8f6ba..b74b2cd7 100644 --- a/demes-forward/src/square_matrix.rs +++ b/demes-forward/src/square_matrix.rs @@ -1,4 +1,4 @@ -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct SquareMatrix { data: Vec, nrows: usize, diff --git a/demes-forward/src/time.rs b/demes-forward/src/time.rs index f7cd61e2..8ae5c89c 100644 --- a/demes-forward/src/time.rs +++ b/demes-forward/src/time.rs @@ -70,7 +70,7 @@ impl Iterator for TimeIterator { } } -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct ModelTime { #[allow(dead_code)] model_start_time: demes::Time, diff --git a/demes/src/specification.rs b/demes/src/specification.rs index cb441e7c..b6e3a557 100644 --- a/demes/src/specification.rs +++ b/demes/src/specification.rs @@ -2634,7 +2634,7 @@ impl UnresolvedGraph { /// * [`load`](crate::load) /// * [`loads`](crate::loads) /// * [`GraphBuilder`](crate::GraphBuilder) -#[derive(Serialize, Debug)] +#[derive(Serialize, Debug, Clone)] #[serde(deny_unknown_fields, try_from = "UnresolvedGraph")] pub struct Graph { #[serde(skip_serializing_if = "Option::is_none")]