summaryrefslogtreecommitdiff
path: root/src/value.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/value.rs')
-rw-r--r--src/value.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/value.rs b/src/value.rs
index 99468fa..7725490 100644
--- a/src/value.rs
+++ b/src/value.rs
@@ -67,11 +67,18 @@ impl QueriedValue {
return None;
}
+ pub fn as_str(&mut self) -> &str {
+ self.value().map(|v| v.as_str()).unwrap_or_else(|| self.missing("string"))
+ }
+ pub fn as_str_opt(&mut self) -> Option<&str> {
+ self.value().map(|v| v.as_str())
+ }
+
pub fn as_string(&mut self) -> String {
- self.as_string_opt().unwrap_or_else(|| self.missing("string"))
+ self.as_str().to_string()
}
pub fn as_string_opt(&mut self) -> Option<String> {
- self.value().cloned()
+ self.as_str_opt().map(|s| s.to_string())
}
as_number!{ f32, "f32" , std::num::ParseFloatError }