1 2 3 4 5 6 7 8 9 10 11 12 13 14
use std::{rc::Rc, sync::Arc}; use poly_enum::PolyEnum; #[derive(PolyEnum)] enum AnyPtr<T> { #[poly_enum(RcPtr)] Arc(Arc<T>), _Box(Box<T>), #[poly_enum(RcPtr)] Rc(Rc<T>), #[poly_enum(NotAPointer)] None, }