lookup() and lookup_mut() lifetime enhancements.

Rationale:

- The path has nothing to do with the result.
- The path has no need to live as long as the Value/self.
- In some cases it can be hard to actually build a path that meets
  the same lifetime requirements as the Value or String slice result.
This commit is contained in:
Mark Swanson 2016-05-30 16:09:40 -04:00
parent 44fc9d9f37
commit 010e34f637

View file

@ -180,7 +180,7 @@ impl Value {
/// let no_bar = value.lookup("test.bar"); /// let no_bar = value.lookup("test.bar");
/// assert_eq!(no_bar.is_none(), true); /// assert_eq!(no_bar.is_none(), true);
/// ``` /// ```
pub fn lookup<'a>(&'a self, path: &'a str) -> Option<&'a Value> { pub fn lookup<'a, 'b>(&'a self, path: &'b str) -> Option<&'a Value> {
let ref path = match Parser::new(path).lookup() { let ref path = match Parser::new(path).lookup() {
Some(path) => path, Some(path) => path,
None => return None, None => return None,
@ -240,7 +240,7 @@ impl Value {
/// let result = value.lookup_mut("test.foo").unwrap(); /// let result = value.lookup_mut("test.foo").unwrap();
/// assert_eq!(result.as_str().unwrap(), "foo"); /// assert_eq!(result.as_str().unwrap(), "foo");
/// ``` /// ```
pub fn lookup_mut(&mut self, path: &str) -> Option<&mut Value> { pub fn lookup_mut<'a, 'b>(&'a mut self, path: &'b str) -> Option<&'a mut Value> {
let ref path = match Parser::new(path).lookup() { let ref path = match Parser::new(path).lookup() {
Some(path) => path, Some(path) => path,
None => return None, None => return None,