Rust 在参数特征方面缺乏相关方法的问题上开展工作?

Rust 在参数特征方面缺乏相关方法的问题上开展工作?,rust,Rust,注:我知道,不幸的是,这里描述的工作方法似乎不适合我,可能是因为我的特点是参数化的 我尝试用关联的方法实现一个参数化特征: trait Parameterized<T> { fn static_call<'a>(t: &'a T) -> &'a T; } struct Foo; impl Parameterized<u32> for Foo { fn static_call<'a>(t: &'a

注:我知道,不幸的是,这里描述的工作方法似乎不适合我,可能是因为我的特点是参数化的


我尝试用关联的方法实现一个参数化特征:

trait Parameterized<T> {
    fn static_call<'a>(t: &'a T) -> &'a T;
}

struct Foo;

impl Parameterized<u32> for Foo {
    fn static_call<'a>(t: &'a u32) -> &'a u32 { t }
}
好吧,好吧,让我们试试上一个问题中描述的解决方法

impl<T, P> PP<T, P>
    where P: Parameterized<T>
{
    fn call_it<'a>(t: &'a T) -> &'a T {
        Parameterized::<T>::static_call(t)
    }
}
不,也不行:

error: unexpected token: `<`
              <P as Parameterized<T>>::static_call(t)
              ^

错误:意外标记:`第一个链接中给出的使用伪参数指定
Self
的变通方法似乎有效;适应:

fn static_call<'a>(t: &'a T, _unused: Option<Self>) -> &'a T;

// ...

    Parameterized::static_call(t, None::<P>)
fn静态调用&'T;
// ...
参数化::静态_调用(t,None::

为我准备罚款


(顺便说一句,这看起来像是关联类型,
trait参数化的{type T;
可能很有用,但它不能解决这个问题,可能与实际的、未简化的代码完全不同。)

啊,我错过了部分解决方案;那么,让我们投票结束这个:xpossible replicate of
error: type annotations required: cannot resolve `_ : Parameterized<T>`
              Parameterized::<T>::static_call(t)
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
impl<T, P> PP<T, P>
    where P: Parameterized<T>
{
    fn call_it<'a>(t: &'a T) -> &'a T {
        <P as Parameterized<T>>::static_call(t)
    }
}
error: unexpected token: `<`
              <P as Parameterized<T>>::static_call(t)
              ^
fn static_call<'a>(t: &'a T, _unused: Option<Self>) -> &'a T;

// ...

    Parameterized::static_call(t, None::<P>)