diff options
Diffstat (limited to 'lib/entry/libimagentryref/src/flags.rs')
-rw-r--r-- | lib/entry/libimagentryref/src/flags.rs | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/lib/entry/libimagentryref/src/flags.rs b/lib/entry/libimagentryref/src/flags.rs deleted file mode 100644 index ae5149ab..00000000 --- a/lib/entry/libimagentryref/src/flags.rs +++ /dev/null @@ -1,100 +0,0 @@ -// -// imag - the personal information management suite for the commandline -// Copyright (C) 2015-2018 Matthias Beyer <mail@beyermatthias.de> and contributors -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; version -// 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// - -use std::collections::BTreeMap; - -use toml::Value; - -use error::RefError as RE; -use error::RefErrorKind as REK; -use error::Result; - -pub struct RefFlags { - content_hashing: bool, - permission_tracking: bool, -} - -impl RefFlags { - - /// Read the RefFlags from a TOML document - /// - /// Assumes that the whole TOML tree is passed. So this looks up `ref.flags` to get the flags. - /// It assumes that this is a Map with Key = <name of the setting> and Value = boolean. - pub fn read(v: &Value) -> Result<RefFlags> { - fn get_field(v: &Value, key: &str) -> Result<bool> { - use toml_query::read::TomlValueReadTypeExt; - v.read_bool(key)?.ok_or(RE::from_kind(REK::HeaderFieldMissingError)) - } - - Ok(RefFlags { - content_hashing: get_field(v, "ref.flags.content_hashing")?, - permission_tracking: get_field(v, "ref.flags.permission_tracking")?, - }) - } - - /// Alias for `RefFlags::content_hashing()` - pub fn is_often_moving(self, b: bool) -> RefFlags { - self.with_content_hashing(b) - } - - pub fn with_content_hashing(mut self, b: bool) -> RefFlags { - self.content_hashing = b; - self - } - - pub fn with_permission_tracking(mut self, b: bool) -> RefFlags { - self.permission_tracking = b; - self - } - - - pub fn get_content_hashing(&self) -> bool { - self.content_hashing - } - - pub fn get_permission_tracking(&self) -> bool { - self.permission_tracking - } - -} - -impl Into<Value> for RefFlags { - - /// Build a TOML::Value from this RefFlags object. - /// - /// Returns a Map which should be set in `ref.flags` in the header. - fn into(self) -> Value { - let mut btm = BTreeMap::new(); - btm.insert(String::from("content_hashing"), Value::Boolean(self.content_hashing)); - btm.insert(String::from("permission_tracking"), Value::Boolean(self.permission_tracking)); - return Value::Table(btm) - } - -} - -impl Default for RefFlags { - - fn default() -> RefFlags { - RefFlags { - content_hashing: false, - permission_tracking: false, - } - } -} - |