如何创建包含对另一个hashmap元素的引用的hashmap?

时间:2015-08-26 17:01:23

标签: rust

我试图创建一个包含两个哈希图的结构 - 一个具有一些值,另一个引用另一个哈希图的元素。这是我的代码。

use std::collections::HashMap;

struct Foo;
struct Bar<'s>(&'s Foo);

struct MyStruct<'a> {
    first : HashMap<&'a str, Foo>,
    second : HashMap<&'a str, Bar<'a>>,
}

impl<'a> MyStruct<'a> {
    fn new() -> MyStruct<'a> {
        let mut result = MyStruct {
            first : HashMap::new(),
            second : HashMap::new(),
        };
        match result.first.get("") {
            Some(t) => { result.second.insert("", Bar(t)); },
            None => {},
        }
        result
    }
}

fn main() {
}

并且此代码无法编译并出现以下错误:

  

错误:result.first活得不够长

我认为这个问题与生命有关,但我无法清楚地解释错误。

有人可以解释发生了什么以及如何解决这个错误吗?

P.S。 struct FooBar来自库,因此我无法修改这些结构。

0 个答案:

没有答案