mastodon.cardina1.red は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。

サーバーの情報

3
人のアクティブユーザー

らりお・ザ・何らかの🈗然㊌ソムリエ

ア゛ーーーー AsRef が lifetime 付きの &'a str を返せない問題!!!

Into<&'a str> とかで……いや厳しいか……

pub struct Foo<S>(S);
impl<S: AsRef<S>> Foo<S> {
fn as_str(&self) -> &str { s.as_ref() }
}

なんだけど、これ Foo<&'a str> からでも &'b str (where Foo: 'b, 'a: 'b) しか返せなくて、そこは &'a str を返してあげたいよねというのが問題の本質

Foo<'a, S> とかにすると、今度は S が所有権付きの型で内部の値についての参照を AsRef で返すような場合にちゃんと lifetime の指定できないよね (何故なら Foo::as_str(&'self self) における 'self が参照の lifetime であるような str を返せるが、これは Foo<'a, S> の 'a の位置に記述できないため)

@lo48576 コンテキスト分かってないですが AsRef<str> + 'a とかでしょうか?