From a0ed99e2f0a37fb04f0a1c728e0bc81ba1e7f482 Mon Sep 17 00:00:00 2001 From: Joshua Simmons Date: Sun, 20 Nov 2022 00:20:39 +0100 Subject: [PATCH] Add `Upcast` trait for casting to super-trait --- narcissus-core/src/lib.rs | 4 ++++ 1 file changed, 4 insertions(+) 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()); -- 2.49.0