Trait otter_api_tests::imports::cast_trait_object::DynCast [−]
pub trait DynCast<T> where
T: DynCastConfig, { pub fn dyn_cast_ref(
&self
) -> Result<&<T as DynCastConfig>::Target, &<T as DynCastConfig>::Source>; pub fn dyn_cast_mut(
&mut self
) -> Result<&mut <T as DynCastConfig>::Target, &mut <T as DynCastConfig>::Source>; pub fn dyn_cast_boxed(
self: Box<Self, Global>
) -> Result<Box<<T as DynCastConfig>::Target, Global>, Box<<T as DynCastConfig>::Source, Global>>; pub fn dyn_cast_rc(
self: Rc<Self>
) -> Result<Rc<<T as DynCastConfig>::Target>, Rc<<T as DynCastConfig>::Source>>; pub fn dyn_cast_arc(
self: Arc<Self>
) -> Result<Arc<<T as DynCastConfig>::Target>, Arc<<T as DynCastConfig>::Source>>; }
Cast a trait object (T::Source
) into a different trait object (T::Target
).
This trait is object safe and provides methods to convert from one fat pointer
to another. This can be used as a supertrait or via trait bounds to allow
casting between two different trait objects. But for usage it is more ergonomic
to use the methods that are provided by the DynCastExt
trait than to call
the methods on this trait directly.
Required methods
pub fn dyn_cast_ref(
&self
) -> Result<&<T as DynCastConfig>::Target, &<T as DynCastConfig>::Source>
&self
) -> Result<&<T as DynCastConfig>::Target, &<T as DynCastConfig>::Source>
Cast a shared reference of this trait object to another trait object.
pub fn dyn_cast_mut(
&mut self
) -> Result<&mut <T as DynCastConfig>::Target, &mut <T as DynCastConfig>::Source>
&mut self
) -> Result<&mut <T as DynCastConfig>::Target, &mut <T as DynCastConfig>::Source>
Cast a mutable/unique reference of this trait object to another trait object.
pub fn dyn_cast_boxed(
self: Box<Self, Global>
) -> Result<Box<<T as DynCastConfig>::Target, Global>, Box<<T as DynCastConfig>::Source, Global>>
self: Box<Self, Global>
) -> Result<Box<<T as DynCastConfig>::Target, Global>, Box<<T as DynCastConfig>::Source, Global>>
Cast a boxed trait object to another trait object.
pub fn dyn_cast_rc(
self: Rc<Self>
) -> Result<Rc<<T as DynCastConfig>::Target>, Rc<<T as DynCastConfig>::Source>>
self: Rc<Self>
) -> Result<Rc<<T as DynCastConfig>::Target>, Rc<<T as DynCastConfig>::Source>>
Cast a reference counted trait object to another trait object.
pub fn dyn_cast_arc(
self: Arc<Self>
) -> Result<Arc<<T as DynCastConfig>::Target>, Arc<<T as DynCastConfig>::Source>>
self: Arc<Self>
) -> Result<Arc<<T as DynCastConfig>::Target>, Arc<<T as DynCastConfig>::Source>>
Cast an atomically reference counted trait object to another trait object.
Implementors
impl DynCast<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config> for Outline
[src]
pub fn dyn_cast_ref(
&self
) -> Result<&<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
[src]
&self
) -> Result<&<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
pub fn dyn_cast_mut(
&mut self
) -> Result<&mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
[src]
&mut self
) -> Result<&mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
pub fn dyn_cast_boxed(
self: Box<Outline, Global>
) -> Result<Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, Global>, Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source, Global>>
[src]
self: Box<Outline, Global>
) -> Result<Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, Global>, Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source, Global>>
pub fn dyn_cast_rc(
self: Rc<Outline>
) -> Result<Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
[src]
self: Rc<Outline>
) -> Result<Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
pub fn dyn_cast_arc(
self: Arc<Outline>
) -> Result<Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
[src]
self: Arc<Outline>
) -> Result<Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
impl DynCast<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config> for Item
[src]
pub fn dyn_cast_ref(
&self
) -> Result<&<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
[src]
&self
) -> Result<&<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
pub fn dyn_cast_mut(
&mut self
) -> Result<&mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
[src]
&mut self
) -> Result<&mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
pub fn dyn_cast_boxed(
self: Box<Item, Global>
) -> Result<Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, Global>, Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source, Global>>
[src]
self: Box<Item, Global>
) -> Result<Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, Global>, Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source, Global>>
pub fn dyn_cast_rc(
self: Rc<Item>
) -> Result<Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
[src]
self: Rc<Item>
) -> Result<Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
pub fn dyn_cast_arc(
self: Arc<Item>
) -> Result<Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
[src]
self: Arc<Item>
) -> Result<Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
impl DynCast<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config> for CircleShape
[src]
pub fn dyn_cast_ref(
&self
) -> Result<&<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
[src]
&self
) -> Result<&<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
pub fn dyn_cast_mut(
&mut self
) -> Result<&mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
[src]
&mut self
) -> Result<&mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
pub fn dyn_cast_boxed(
self: Box<CircleShape, Global>
) -> Result<Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, Global>, Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source, Global>>
[src]
self: Box<CircleShape, Global>
) -> Result<Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, Global>, Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source, Global>>
pub fn dyn_cast_rc(
self: Rc<CircleShape>
) -> Result<Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
[src]
self: Rc<CircleShape>
) -> Result<Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
pub fn dyn_cast_arc(
self: Arc<CircleShape>
) -> Result<Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
[src]
self: Arc<CircleShape>
) -> Result<Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
impl DynCast<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config> for RectShape
[src]
pub fn dyn_cast_ref(
&self
) -> Result<&<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
[src]
&self
) -> Result<&<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
pub fn dyn_cast_mut(
&mut self
) -> Result<&mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
[src]
&mut self
) -> Result<&mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, &mut <<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>
pub fn dyn_cast_boxed(
self: Box<RectShape, Global>
) -> Result<Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, Global>, Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source, Global>>
[src]
self: Box<RectShape, Global>
) -> Result<Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target, Global>, Box<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source, Global>>
pub fn dyn_cast_rc(
self: Rc<RectShape>
) -> Result<Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
[src]
self: Rc<RectShape>
) -> Result<Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Rc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
pub fn dyn_cast_arc(
self: Arc<RectShape>
) -> Result<Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
[src]
self: Arc<RectShape>
) -> Result<Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Target>, Arc<<<dyn OutlineTrait + 'static as GetDynCastConfig<dyn OutlineTrait + 'static>>::Config as DynCastConfig>::Source>>
impl<C, T> DynCast<C> for T where
C: DynCastConfig,
T: DerivedDynCast<ConcreteDynCastConfig<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>, C>,
C: DynCastConfig,
T: DerivedDynCast<ConcreteDynCastConfig<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>, C>,
pub fn dyn_cast_ref(
&self
) -> Result<&<C as DynCastConfig>::Target, &<C as DynCastConfig>::Source>
&self
) -> Result<&<C as DynCastConfig>::Target, &<C as DynCastConfig>::Source>
pub fn dyn_cast_mut(
&mut self
) -> Result<&mut <C as DynCastConfig>::Target, &mut <C as DynCastConfig>::Source>
&mut self
) -> Result<&mut <C as DynCastConfig>::Target, &mut <C as DynCastConfig>::Source>
pub fn dyn_cast_boxed(
self: Box<T, Global>
) -> Result<Box<<C as DynCastConfig>::Target, Global>, Box<<C as DynCastConfig>::Source, Global>>
self: Box<T, Global>
) -> Result<Box<<C as DynCastConfig>::Target, Global>, Box<<C as DynCastConfig>::Source, Global>>
pub fn dyn_cast_rc(
self: Rc<T>
) -> Result<Rc<<C as DynCastConfig>::Target>, Rc<<C as DynCastConfig>::Source>>
self: Rc<T>
) -> Result<Rc<<C as DynCastConfig>::Target>, Rc<<C as DynCastConfig>::Source>>
pub fn dyn_cast_arc(
self: Arc<T>
) -> Result<Arc<<C as DynCastConfig>::Target>, Arc<<C as DynCastConfig>::Source>>
self: Arc<T>
) -> Result<Arc<<C as DynCastConfig>::Target>, Arc<<C as DynCastConfig>::Source>>