如何实现任何可变性的特征?

How to implement a trait for any mutability?

可变性可以成为特征中的通用参数吗?我想为一个类型的可变和不可变变体实现一个特征,而不必复制和粘贴 impl 块。

特征 Foo {…}

impl Foo 为 *const T {...}
impl Foo for *mut T {……同样的事情……}

一厢情愿的伪代码:

特征 Foo {…}

impl Foo 为 *Mutability T {...}

Can mutability be a generic parameter in traits?

没有。 ^_^

这里有一些关于此事的详细讨论(Internals, Reddit)。

我想一般人都承认目前的状态并不理想,但目前也没有受到太大的限制。人们担心它将如何实施以及各种方法的合理性。有些人想知道 Higher-Kinded Types (HKTs) 是否会解决这个问题,是否以及何时将它们添加到 Rust。

另请参阅: