diff --git a/src/select/mod.rs b/src/select/mod.rs index 22f1bf4..d0d9387 100644 --- a/src/select/mod.rs +++ b/src/select/mod.rs @@ -111,17 +111,17 @@ impl Selector { self.value(&value) } - fn jf(&mut self) -> result::Result { + fn jf(&self) -> result::Result { match &self.value { Some(v) => Ok(JsonValueFilter::new_from_value(v.clone())), _ => return Err("Empty value".to_owned()) } } - fn select(&mut self) -> result::Result { + fn select(&self) -> result::Result { let mut jf = self.jf()?; - match &mut self.node { + match &self.node { Some(node) => { jf.visit(node.clone()); Ok(jf.take_value()) @@ -130,17 +130,17 @@ impl Selector { } } - pub fn select_to_str(&mut self) -> result::Result { + pub fn select_to_str(&self) -> result::Result { serde_json::to_string(self.select()?.deref()).map_err(|e| format!("{:?}", e)) } - pub fn select_to_value(&mut self) -> result::Result { + pub fn select_to_value(&self) -> result::Result { Ok((&self.select()?).into()) } - pub fn select_to(&mut self) -> result::Result { + pub fn select_to(&self) -> result::Result { let mut jf = self.jf()?; - match &mut self.node { + match &self.node { Some(node) => { jf.visit(node.clone()); T::deserialize(jf.take_value().deref()).map_err(|e| format!("{:?}", e))