我有一个新类型的结构:
pub struct Branch<'repo>(Git2Branch<'repo>);
我正在尝试包装一个方法调用:
impl <'repo> Branch<'_> {
pub fn into_reference(self) -> Git2Reference<'repo> {
self.0.into_reference()
}
}
(这里的Git2Branch
和Git2Reference
是git2机箱中同名类型的别名。(
这无法使用进行编译
error: lifetime may not live long enough
--> git_wrapper/src/branch.rs:38:9
|
6 | impl <'repo> Branch<'_> {
| ----- lifetime `'repo` defined here
...
37 | pub fn into_reference(self) -> Git2Reference<'repo> {
| ---- has type `branch::Branch<'1>`
38 | self.0.into_reference()
| ^^^^^^^^^^^^^^^^^^^^^^^ associated function was supposed to return data with lifetime `'repo` but it is returning data with lifetime `'1`
寿命'1
和'repo
应该是相同的,但我不知道在这种情况下如何(或者是否可能(指定self
的寿命。
impl <'repo> Branch<'_> {
与相同
impl <'repo, 'anonymous> Branch<'anonymous> {
因此,字段的生存期'repo
和匿名生存期是不相关的——当您试图返回Git2Reference<'anonymous>
时,这会导致问题。
你只需要在这里谈论一辈子,所以说:
impl <'repo> Branch<'repo> {