Implement Clone for everything that can be cloned.

This commit is contained in:
Crozet Sébastien
2020-11-03 14:43:21 +01:00
parent 036a246141
commit 0cf59d78bd
14 changed files with 51 additions and 0 deletions

View File

@@ -9,6 +9,9 @@ pub trait MaybeSerializableData: DowncastSync {
fn as_serialize(&self) -> Option<(u32, &dyn Serialize)> {
None
}
/// Clones `self`.
fn clone_dyn(&self) -> Box<dyn MaybeSerializableData>;
}
impl_downcast!(sync MaybeSerializableData);

View File

@@ -5,6 +5,7 @@ use std::marker::PhantomData;
/// A permanent subscription to a pub-sub queue.
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
#[derive(Clone)]
pub struct Subscription<T> {
// Position on the cursor array.
id: u32,
@@ -12,6 +13,7 @@ pub struct Subscription<T> {
}
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
#[derive(Clone)]
struct PubSubCursor {
// Position on the offset array.
id: u32,
@@ -36,6 +38,7 @@ impl PubSubCursor {
/// A pub-sub queue.
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
#[derive(Clone)]
pub struct PubSub<T> {
deleted_messages: u32,
deleted_offsets: u32,