use core::ops::Deref; use stable_deref_trait::StableDeref;
usecrate::ZeroFrom;
impl<'zf, C: ?Sized, T> ZeroFrom<'zf, C> for YokeTraitHack<T> where
T: ZeroFrom<'zf, C>,
{ #[inline] fn zero_from(cart: &'zf C) -> Self {
YokeTraitHack(T::zero_from(cart))
}
}
impl<Y, C> Yoke<Y, C> where
Y: for<'a> Yokeable<'a>, for<'a> YokeTraitHack<<Y as Yokeable<'a>>::Output>: ZeroFrom<'a, <C as Deref>::Target>,
C: StableDeref + Deref,
<C as Deref>::Target: 'static,
{ /// Construct a [`Yoke`]`<Y, C>` from a cart implementing `StableDeref` by zero-copy cloning /// the cart to `Y` and then yokeing that object to the cart. /// /// The type `Y` must implement [`ZeroFrom`]`<C::Target>`. This trait is auto-implemented /// on many common types and can be custom implemented or derived in order to make it easier /// to construct a `Yoke`. /// /// # Example /// /// Attach to a cart: /// /// ``` /// use std::borrow::Cow; /// use yoke::Yoke; /// /// let yoke = Yoke::<Cow<'static, str>, String>::attach_to_zero_copy_cart( /// "demo".to_owned(), /// ); /// /// assert_eq!("demo", yoke.get()); /// ``` pubfn attach_to_zero_copy_cart(cart: C) -> Self {
Yoke::<Y, C>::attach_to_cart(cart, |c| {
YokeTraitHack::<<Y as Yokeable>::Output>::zero_from(c).0
})
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-18)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.