diff --git a/src/filter_plugin/mod.rs b/src/filter_plugin/mod.rs index 7f7beb6..33d6755 100644 --- a/src/filter_plugin/mod.rs +++ b/src/filter_plugin/mod.rs @@ -26,11 +26,20 @@ enum FilterType { StripAnsi, } -#[derive(Clone)] pub struct FilterChain { plugins: Vec>, } +impl Clone for FilterChain { + fn clone(&self) -> Self { + let mut plugins = Vec::with_capacity(self.plugins.len()); + for plugin in &self.plugins { + plugins.push(plugin.clone_box()); + } + FilterChain { plugins } + } +} + impl FilterChain { pub fn new() -> Self { Self {