From: Joshua Simmons Date: Sat, 19 Nov 2022 23:20:39 +0000 (+0100) Subject: Add `Upcast` trait for casting to super-trait X-Git-Url: https://git.nega.tv//gitweb.cgi?a=commitdiff_plain;h=a0ed99e2f0a37fb04f0a1c728e0bc81ba1e7f482;p=josh%2Fnarcissus Add `Upcast` trait for casting to super-trait --- diff --git a/narcissus-core/src/lib.rs b/narcissus-core/src/lib.rs index 2c09509..cb63fdd 100644 --- a/narcissus-core/src/lib.rs +++ b/narcissus-core/src/lib.rs @@ -264,6 +264,10 @@ pub fn zeroed_box() -> Box> { /// Negative traits aren't stable yet, so use a dummy PhantomData marker to implement !Send pub type PhantomUnsend = std::marker::PhantomData<*mut ()>; +pub trait Upcast { + fn upcast(&self) -> &T; +} + #[must_use] pub fn align_offset(x: usize, align: usize) -> usize { debug_assert!(align.is_power_of_two());