Object

Trait Object 

Source
pub trait Object<Extra: 'static = ()>:
    'static
    + Sized
    + Send
    + Sync
    + FullHash<Extra>
    + for<'a> Parse<Input<'a, Extra>> {
    // Provided methods
    fn extension(&self, typeid: TypeId) -> Result<&dyn Any> { ... }
    fn point_extra(self, extra: Extra) -> Point<Self, Extra>
       where Self: Clone,
             Extra: Send + Sync + Clone { ... }
    fn to_resolve(&self) -> Arc<dyn Resolve>
       where Self: Clone { ... }
}

Provided Methods§

Source

fn extension(&self, typeid: TypeId) -> Result<&dyn Any>

Source

fn point_extra(self, extra: Extra) -> Point<Self, Extra>
where Self: Clone, Extra: Send + Sync + Clone,

Source

fn to_resolve(&self) -> Arc<dyn Resolve>
where Self: Clone,

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.

Implementations on Foreign Types§

Source§

impl<E: 'static> Object<E> for bool

Source§

impl<E: 'static> Object<E> for u8

Source§

impl<E: 'static> Object<E> for ()

Source§

impl<E: 'static> Object<E> for String

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Inline<Extra>, C: Inline<Extra>, D: Inline<Extra>, E: Inline<Extra>, F: Inline<Extra>, G: Inline<Extra>, H: Inline<Extra>, I: Inline<Extra>, J: Inline<Extra>, K: Inline<Extra>, L: Object<Extra>> Object<Extra> for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Inline<Extra>, C: Inline<Extra>, D: Inline<Extra>, E: Inline<Extra>, F: Inline<Extra>, G: Inline<Extra>, H: Inline<Extra>, I: Inline<Extra>, J: Inline<Extra>, K: Object<Extra>> Object<Extra> for (A, B, C, D, E, F, G, H, I, J, K)

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Inline<Extra>, C: Inline<Extra>, D: Inline<Extra>, E: Inline<Extra>, F: Inline<Extra>, G: Inline<Extra>, H: Inline<Extra>, I: Inline<Extra>, J: Object<Extra>> Object<Extra> for (A, B, C, D, E, F, G, H, I, J)

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Inline<Extra>, C: Inline<Extra>, D: Inline<Extra>, E: Inline<Extra>, F: Inline<Extra>, G: Inline<Extra>, H: Inline<Extra>, I: Object<Extra>> Object<Extra> for (A, B, C, D, E, F, G, H, I)

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Inline<Extra>, C: Inline<Extra>, D: Inline<Extra>, E: Inline<Extra>, F: Inline<Extra>, G: Inline<Extra>, H: Object<Extra>> Object<Extra> for (A, B, C, D, E, F, G, H)

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Inline<Extra>, C: Inline<Extra>, D: Inline<Extra>, E: Inline<Extra>, F: Inline<Extra>, G: Object<Extra>> Object<Extra> for (A, B, C, D, E, F, G)

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Inline<Extra>, C: Inline<Extra>, D: Inline<Extra>, E: Inline<Extra>, F: Object<Extra>> Object<Extra> for (A, B, C, D, E, F)

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Inline<Extra>, C: Inline<Extra>, D: Inline<Extra>, E: Object<Extra>> Object<Extra> for (A, B, C, D, E)

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Inline<Extra>, C: Inline<Extra>, D: Object<Extra>> Object<Extra> for (A, B, C, D)

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Inline<Extra>, C: Object<Extra>> Object<Extra> for (A, B, C)

Source§

impl<Extra: 'static, A: Inline<Extra>, B: Object<Extra>> Object<Extra> for (A, B)

Source§

impl<K: Inline<E> + Ord, V: Inline<E>, E: 'static> Object<E> for BTreeMap<K, V>

Source§

impl<T: Inline<E> + Ord, E: 'static> Object<E> for BTreeSet<T>

Source§

impl<T: Inline<E> + MaybeHasNiche<MnArray: MnArray<MaybeNiche = N>>, N: Niche<NeedsTag = B>, B: Bit, E: 'static> Object<E> for Option<T>

Source§

impl<T: Inline<E>, E: 'static> Object<E> for VecDeque<T>

Source§

impl<T: Inline<E>, E: 'static> Object<E> for Vec<T>

Source§

impl<T: Object<E>, E: 'static> Object<E> for (T,)

Source§

impl<T: Object<E>, E: 'static> Object<E> for Box<T>

Source§

impl<T: Object<E>, E: 'static> Object<E> for Arc<T>

Source§

impl<T: ?Sized + 'static + Send + Sync, E: 'static> Object<E> for PhantomData<T>

Source§

impl<const N: usize, Extra: 'static> Object<Extra> for [u8; N]

Implementors§

Source§

impl<E: 'static> Object<E> for LpBytes

Source§

impl<E: 'static> Object<E> for LpString

Source§

impl<T, __E: 'static> Object<__E> for Lp<T>
where T: Object<__E>,

Source§

impl<T: Object<Extra>, Extra: 'static + Send + Sync + Clone> Object<Extra> for Point<T, Extra>

Source§

impl<T: Object<Extra>, Extra: 'static + Send + Sync + Clone> Object<Extra> for RawPoint<T, Extra>

Source§

impl<__E: 'static> Object<__E> for Hash
where [u8; 32]: Object<__E>,

Source§

impl<__E: 'static> Object<__E> for OptionalHash
where [u8; 32]: Object<__E>,