diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2022-10-24 21:52:30 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2022-10-24 21:52:30 +0200 |
commit | a607f4bcab2e846cb2b91761be808eb516d03d8f (patch) | |
tree | e8586e6a02ffdf09d7e38fbd2bcc789444c70d20 /src/common | |
parent | 0acc44b468a6c244620efee7470fc24d6971e085 (diff) |
get rid of some of the static lifetimes
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/mod.rs | 57 | ||||
-rw-r--r-- | src/common/nameserver.rs | 10 |
2 files changed, 35 insertions, 32 deletions
diff --git a/src/common/mod.rs b/src/common/mod.rs index ee54eed..c9ca264 100644 --- a/src/common/mod.rs +++ b/src/common/mod.rs @@ -4,71 +4,74 @@ use std::collections::BTreeMap; use iso8601::DateTime; -pub(crate) fn get_str(map: &BTreeMap<String, xmlrpc::Value>, key: &'static str) -> Result<String> { +pub(crate) fn get_str(map: &BTreeMap<String, xmlrpc::Value>, key: String) -> Result<String> { let value = map - .get(key) - .ok_or(Error::Inexistent(key))? + .get(&key) + .ok_or(Error::Inexistent(key.clone()))? .as_str() - .ok_or_else(|| Error::Type(key, "String", map.get(key).unwrap().clone()))?; + .ok_or_else(|| Error::Type(key.clone(), "String".into(), map.get(&key).unwrap().clone()))?; Ok(value.to_owned()) } -pub(crate) fn get_i32(map: &BTreeMap<String, xmlrpc::Value>, key: &'static str) -> Result<i32> { +pub(crate) fn get_i32(map: &BTreeMap<String, xmlrpc::Value>, key: String) -> Result<i32> { let value = map - .get(key) - .ok_or(Error::Inexistent(key))? + .get(&key) + .ok_or(Error::Inexistent(key.clone()))? .as_i32() - .ok_or_else(|| Error::Type(key, "Int", map.get(key).unwrap().clone()))?; + .ok_or_else(|| Error::Type(key.clone(), "Int".into(), map.get(&key).unwrap().clone()))?; Ok(value) } -pub(crate) fn get_bool(map: &BTreeMap<String, xmlrpc::Value>, key: &'static str) -> Result<bool> { +pub(crate) fn get_bool(map: &BTreeMap<String, xmlrpc::Value>, key: String) -> Result<bool> { let value = map - .get(key) - .ok_or(Error::Inexistent(key))? + .get(&key) + .ok_or(Error::Inexistent(key.clone()))? .as_bool() - .ok_or_else(|| Error::Type(key, "Bool", map.get(key).unwrap().clone()))?; + .ok_or_else(|| Error::Type(key.clone(), "Bool".into(), map.get(&key).unwrap().clone()))?; Ok(value) } -pub(crate) fn get_datetime( - map: &BTreeMap<String, xmlrpc::Value>, - key: &'static str, -) -> Result<DateTime> { +pub(crate) fn get_datetime(map: &BTreeMap<String, xmlrpc::Value>, key: String) -> Result<DateTime> { let value = map - .get(key) - .ok_or(Error::Inexistent(key))? + .get(&key) + .ok_or(Error::Inexistent(key.clone()))? .as_datetime() - .ok_or_else(|| Error::Type(key, "DateTime", map.get(key).unwrap().clone()))?; + .ok_or_else(|| { + Error::Type( + key.clone(), + "DateTime".into(), + map.get(&key).unwrap().clone(), + ) + })?; Ok(value) } pub(crate) fn get_array( map: &BTreeMap<String, xmlrpc::Value>, - key: &'static str, + key: String, ) -> Result<Vec<xmlrpc::Value>> { let value = map - .get(key) - .ok_or(Error::Inexistent(key))? + .get(&key) + .ok_or(Error::Inexistent(key.clone()))? .as_array() - .ok_or_else(|| Error::Type(key, "Array", map.get(key).unwrap().clone()))?; + .ok_or_else(|| Error::Type(key.clone(), "Array".into(), map.get(&key).unwrap().clone()))?; Ok(value.to_vec()) } pub(crate) fn get_map( map: &BTreeMap<String, xmlrpc::Value>, - key: &'static str, + key: String, ) -> Result<BTreeMap<String, xmlrpc::Value>> { let value = map - .get(key) - .ok_or(Error::Inexistent(key))? + .get(&key) + .ok_or(Error::Inexistent(key.clone()))? .as_struct() - .ok_or_else(|| Error::Type(key, "Struct", map.get(key).unwrap().clone()))?; + .ok_or_else(|| Error::Type(key.clone(), "Struct".into(), map.get(&key).unwrap().clone()))?; Ok(value.to_owned()) } diff --git a/src/common/nameserver.rs b/src/common/nameserver.rs index 9b8c797..706ae73 100644 --- a/src/common/nameserver.rs +++ b/src/common/nameserver.rs @@ -97,7 +97,7 @@ impl TryFrom<String> for RecordType { "TXT" => Ok(Self::Txt), "URI" => Ok(Self::Uri), "URL" => Ok(Self::Url), - _ => Err(Error::BadVariant("RecordType", s)), + _ => Err(Error::BadVariant("RecordType".into(), s)), } } } @@ -124,7 +124,7 @@ impl TryFrom<String> for DomainType { match s.as_str() { "MASTER" => Ok(Self::Master), "SLAVE" => Ok(Self::Slave), - _ => Err(Error::BadVariant("DomainType", s)), + _ => Err(Error::BadVariant("DomainType".into(), s)), } } } @@ -140,8 +140,8 @@ impl TryFrom<BTreeMap<String, xmlrpc::Value>> for SlaveDns { type Error = Error; fn try_from(map: BTreeMap<String, xmlrpc::Value>) -> Result<Self> { Ok(Self { - hostname: get_str(&map, "name")?, - address: get_str(&map, "ip")?, + hostname: get_str(&map, "name".into())?, + address: get_str(&map, "ip".into())?, }) } } @@ -171,7 +171,7 @@ impl TryFrom<String> for UrlRdrType { "HEADER301" => Ok(Self::Permanent), "HEADER302" => Ok(Self::Temporary), "FRAME" => Ok(Self::Frame), - _ => Err(Error::BadVariant("UrlRdrType", s)), + _ => Err(Error::BadVariant("UrlRdrType".into(), s)), } } } |