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:
parent
44fc9d9f37
commit
010e34f637
|
@ -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,
|
||||||
|
|
Loading…
Reference in a new issue