1 #![feature(generic_associated_types)]
10 type Pointer<T>: Deref<Target = T>;
11 fn new<T>(value: T) -> Self::Pointer<T>;
16 impl PointerFamily for ArcFamily {
17 type Pointer<T> = Arc<T>;
18 fn new<T>(value: T) -> Self::Pointer<T> {
25 impl PointerFamily for RcFamily {
26 type Pointer<T> = Rc<T>;
27 fn new<T>(value: T) -> Self::Pointer<T> {
32 struct Foo<P: PointerFamily> {
33 bar: P::Pointer<String>,