pub trait TwoBufferProvider<T: ?Sized> {
type ControlWrapper: Borrow<T>;
// Required methods
fn as_wrapper(&self) -> &Self::ControlWrapper;
fn from_wrapper_boxed(r: &Self::ControlWrapper) -> Box<Self>;
fn from_boxed(value: Box<T>) -> Box<Self>;
// Provided methods
fn from_wrapper(r: &Self::ControlWrapper) -> Self
where Self: Sized { ... }
fn inner(&self) -> &T { ... }
fn from_value(value: T) -> Self
where T: Sized,
Self: Sized { ... }
}
Required Associated Types§
type ControlWrapper: Borrow<T>
Required Methods§
fn as_wrapper(&self) -> &Self::ControlWrapper
fn from_wrapper_boxed(r: &Self::ControlWrapper) -> Box<Self>
fn from_boxed(value: Box<T>) -> Box<Self>
Provided Methods§
fn from_wrapper(r: &Self::ControlWrapper) -> Selfwhere
Self: Sized,
fn inner(&self) -> &T
fn from_value(value: T) -> Self
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.