From 316f9083d1e2686c45809617457663dc0f42818a Mon Sep 17 00:00:00 2001 From: Nikolay Kim Date: Mon, 29 Apr 2024 15:11:04 +0500 Subject: [PATCH] Change Extensions::insert() method according doc #345 (#347) --- ntex-util/CHANGES.md | 6 +++--- ntex-util/Cargo.toml | 2 +- ntex-util/src/services/extensions.rs | 7 +++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ntex-util/CHANGES.md b/ntex-util/CHANGES.md index d6d3ec17..7d855ea0 100644 --- a/ntex-util/CHANGES.md +++ b/ntex-util/CHANGES.md @@ -1,8 +1,8 @@ # Changes -## [1.1.0] - 2024-03-xx +## [1.1.0] - 2024-04-xx -* Added server worker's management utils +* Change Extensions::insert() method according doc #345 ## [1.0.1] - 2024-01-19 @@ -12,7 +12,7 @@ * Release -## [1.0.0-b.1] - 2024-01-xx +## [1.0.0-b.1] - 2024-01-08 * Remove unnecessary 'static diff --git a/ntex-util/Cargo.toml b/ntex-util/Cargo.toml index b4b4cd99..39b96910 100644 --- a/ntex-util/Cargo.toml +++ b/ntex-util/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ntex-util" -version = "1.0.1" +version = "1.1.0" authors = ["ntex contributors "] description = "Utilities for ntex framework" keywords = ["network", "framework", "async", "futures"] diff --git a/ntex-util/src/services/extensions.rs b/ntex-util/src/services/extensions.rs index fa8d5ae1..1fbcb7e4 100644 --- a/ntex-util/src/services/extensions.rs +++ b/ntex-util/src/services/extensions.rs @@ -19,8 +19,10 @@ impl Extensions { /// /// If a extension of this type already existed, it will /// be returned. - pub fn insert(&mut self, val: T) { - self.map.insert(TypeId::of::(), Box::new(val)); + pub fn insert(&mut self, val: T) -> Option { + self.map + .insert(TypeId::of::(), Box::new(val)) + .and_then(|item| item.downcast::().map(|boxed| *boxed).ok()) } /// Check if container contains entry @@ -89,6 +91,7 @@ fn test_remove() { map.insert::(123); assert!(map.get::().is_some()); + assert_eq!(map.insert::(10), Some(123)); map.remove::(); assert!(map.get::().is_none());