diff options
Diffstat (limited to 'src/value.rs')
-rw-r--r-- | src/value.rs | 11 |
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 } |