В
trait NotSafe {(playground)
fn method() {}
}
trait Safe {
fn method(&self);
}
impl<T: NotSafe> Safe for T {
fn method(&self) {
<Self as NotSafe>::method();
}
}
fn test<T: NotSafe>(x: T) {
let safe: &dyn Safe = &x;
safe.method();
}
Size: a a a
В
trait NotSafe {(playground)
fn method() {}
}
trait Safe {
fn method(&self);
}
impl<T: NotSafe> Safe for T {
fn method(&self) {
<Self as NotSafe>::method();
}
}
fn test<T: NotSafe>(x: T) {
let safe: &dyn Safe = &x;
safe.method();
}
EG
EG
r
DS
АГ
AL
DS
DS
MS
AL
В
const fn
нельзя создавать PhantomData<fn()>
, но при этом там можно создать условный struct Wrap(PhantomData<fn()>)
, при должном костылингеMV
MS
MV
MS
MS
p
p