Может ли изменчивость быть универсальным параметром в чертах? Я хотел бы реализовать черту для изменяемого и неизменяемого варианта типа без необходимости копировать и вставлять блок impl
.
trait Foo<T> {…} impl<T> Foo for *const T {…} impl<T> Foo for *mut T {…same thing again…}
Желаемый псевдокод:
trait Foo<T> {…} impl<T, Mutability> Foo for *Mutability T {…}
*const T
, затем определить impl для*mut T
как(self as *const T).method()
или что-то в этом роде. - person   schedule 08.02.2015* const T
указатели и приводили их к*mut T
только тогда, когда это явно было необходимо. В более общем плане люди хотят иметь возможность возвращать параметризованные по изменяемости, а также изменять изменяемость ссылок&T
‹-›&mut T
. В таких случаях я бы очень осторожно подошел к кастингу или трансмутации. - person Shepmaster   schedule 08.02.2015