diff --git a/piecrust/CHANGELOG.md b/piecrust/CHANGELOG.md index bc6eb57d..dd70cf19 100644 --- a/piecrust/CHANGELOG.md +++ b/piecrust/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Add `Session::set_meta` [#rusk_3341] +- Add `Session::remove_meta` [#rusk_3341] ## [0.27.0] - 2024-12-18 diff --git a/piecrust/src/session.rs b/piecrust/src/session.rs index f4441704..c30b8f3f 100644 --- a/piecrust/src/session.rs +++ b/piecrust/src/session.rs @@ -764,6 +764,16 @@ impl Session { Ok(self.inner.data.set(name, data)) } + /// Remove a metadata item. + /// + /// Returns the value of the removed item (if any). + pub fn remove_meta(&mut self, name: S) -> Option> + where + S: Into>, + { + self.inner.data.remove(name) + } + pub fn serialize_data(value: &V) -> Result, Error> where V: for<'a> Serialize>, @@ -916,6 +926,13 @@ impl SessionData { { self.data.insert(name.into(), data) } + + fn remove(&mut self, name: S) -> Option> + where + S: Into>, + { + self.data.remove(&name.into()) + } } impl From for SessionData {