diff --git a/src/common/base/src/plugins.rs b/src/common/base/src/plugins.rs index c392422b64..5d27ad1ac1 100644 --- a/src/common/base/src/plugins.rs +++ b/src/common/base/src/plugins.rs @@ -31,7 +31,8 @@ impl Plugins { } pub fn insert(&self, value: T) { - let _ = self.write().insert(value); + let last = self.write().insert(value); + assert!(last.is_none(), "each type of plugins must be one and only"); } pub fn get(&self) -> Option { @@ -137,4 +138,12 @@ mod tests { assert_eq!(plugins.len(), 2); assert!(!plugins.is_empty()); } + + #[test] + #[should_panic(expected = "each type of plugins must be one and only")] + fn test_plugin_uniqueness() { + let plugins = Plugins::new(); + plugins.insert(1i32); + plugins.insert(2i32); + } }