我有一个像与牛田改造结构方便的方式来拥有
struct Foo<'a> {
field1: &'a str,
field2: &'a str,
field3: &'a u8,
// ...
}
,我使用的从mmap
PED文件返回解析结果定义的结构。对于一些成功的解析,我想存储结果以供以后处理,并且由于各种原因,在释放内存后进行处理。我可以做类似
struct OwnedFoo {
field1: String,
field2: String,
field3: Vec<u8>,
// ...
}
,并手动将所有Foo
s表示我有兴趣到OwnedFoos
。不过,我想知道如果我可以这样做:
struct Foo<'a> {
field1: Cow<'a, str>,
field2: Cow<'a, str>,
field3: Cow<'a, u8>,
...
}
代替,如果有任何的方式来自动使所拥有的所有的Cow
S和擦除寿命参数。我在库文档中没有发现任何似乎适用的内容。
喜欢的东西:
let a = Foo { ... };
let a_owned = a.into_owned();
// do stuff with a_owned that I can't do with a
在你的例子中,'a_owned'的类型是什么?你也想让它成为'Foo'吗? –
我很喜欢它是一个'Foo',它的使用寿命参数已被删除,但更多的是我感兴趣的使用人体工程学,即不必定义新的类型。 – dnaq