diff --git a/src/config.rs b/src/config.rs index 68255c3..0712d0f 100644 --- a/src/config.rs +++ b/src/config.rs @@ -412,6 +412,18 @@ impl Deref for Data { } } +impl Clone for Data { + fn clone(&self) -> Self { + Data { config: self.config.clone(), request_counter: self.request_counter.load(Ordering::Relaxed).into() } + } + + fn clone_from(&mut self, source: &Self) { + let Data { config, request_counter } = self; + config.clone_from(&source.config); + *request_counter.get_mut() = source.request_counter.load(Ordering::Relaxed); + } +} + /// Middleware for HTTP handlers which provides access to [Data] #[derive(Clone)] pub struct FederationMiddleware(pub(crate) FederationConfig);