aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2022-10-24 21:52:30 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2022-10-24 21:52:30 +0200
commita607f4bcab2e846cb2b91761be808eb516d03d8f (patch)
treee8586e6a02ffdf09d7e38fbd2bcc789444c70d20 /src/common
parent0acc44b468a6c244620efee7470fc24d6971e085 (diff)
get rid of some of the static lifetimes
Diffstat (limited to 'src/common')
-rw-r--r--src/common/mod.rs57
-rw-r--r--src/common/nameserver.rs10
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)),
}
}
}