Struct 如何为包含引用的结构实现AsRef

Struct 如何为包含引用的结构实现AsRef,struct,rust,lifetime,Struct,Rust,Lifetime,如果我有一个包含如下引用的结构: struct Struct<'a> { reference: &'a str } struct-struct>对于struct使用fn作为&ref(&self)->&struct时,编译器必须在返回类型中推断(隐式)泛型生存期,但未能这样做。编译器需要一个结构。您想做什么?我不确定AsRef是否适合你的情况。您可能需要借用编译器错误很严重。您只需要显式地为结构处处指定生存期参数@这是一个答案,不是评论。一两句话的答案是毫无意义的,就

如果我有一个包含如下引用的结构:

struct Struct<'a> {
    reference: &'a str
}

struct-struct>对于struct使用
fn作为&ref(&self)->&struct
时,编译器必须在返回类型中推断(隐式)泛型生存期,但未能这样做。编译器需要一个
结构。您想做什么?我不确定
AsRef
是否适合你的情况。您可能需要
借用
编译器错误很严重。您只需要显式地为结构处处指定生存期参数@这是一个答案,不是评论。一两句话的答案是毫无意义的,就像这个评论一样。我必须解释为什么它不起作用,我认为我不能这样做。
impl<'a> AsRef<Struct<'a>> for Struct<'a> {
    fn as_ref(&self) -> &Struct {
        self
    }
}

      expected fn(&Struct<'a>) -> &Struct<'a>
         found fn(&Struct<'a>) -> &Struct<'_>  // '_ is some anonymous lifetime,
                                               // which needs to come from somewhere
impl<'a> AsRef<Struct<'a>> for Struct<'a> {
    fn as_ref(&self) -> &Self {  // Self is Struct<'a>, the type for which we impl AsRef
        self
    }
}