summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2018-11-15 18:25:58 +0100
committerMatthias Beyer <mail@beyermatthias.de>2019-02-11 03:22:56 +0100
commit19912f5e88bf0c0f1a1c521f6f5109ee6fac8cff (patch)
treecc42b63ce5f941c37f64d7c819fb1d60d632ab9a
parent96a25c18b2506852fa512922400466cf4062310f (diff)
Add Is::remove_isflag() for removing header flags
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--lib/entry/libimagentryutil/src/isa.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/entry/libimagentryutil/src/isa.rs b/lib/entry/libimagentryutil/src/isa.rs
index ba634c9c..835fb5e7 100644
--- a/lib/entry/libimagentryutil/src/isa.rs
+++ b/lib/entry/libimagentryutil/src/isa.rs
@@ -23,6 +23,7 @@ use failure::Error;
use toml::Value;
use toml_query::read::TomlValueReadTypeExt;
use toml_query::insert::TomlValueInsertExt;
+use toml_query::delete::TomlValueDeleteExt;
/// Trait to check whether an entry is a certain kind of entry
///
@@ -71,6 +72,7 @@ use toml_query::insert::TomlValueInsertExt;
pub trait Is {
fn is<T: IsKindHeaderPathProvider>(&self) -> Result<bool>;
fn set_isflag<T: IsKindHeaderPathProvider>(&mut self) -> Result<()>;
+ fn remove_isflag<T: IsKindHeaderPathProvider>(&mut self) -> Result<()>;
}
impl Is for ::libimagstore::store::Entry {
@@ -89,6 +91,13 @@ impl Is for ::libimagstore::store::Entry {
.map_err(Error::from)
.map(|_| ())
}
+
+ fn remove_isflag<T: IsKindHeaderPathProvider>(&mut self) -> Result<()> {
+ self.get_header_mut()
+ .delete(T::kindflag_header_location())
+ .map_err(Error::from)
+ .map(|_| ())
+ }
}