#[doc(hidden)]
pub struct SpecializeWrapper<T>(pub T);
#[doc(hidden)]
pub trait CloneFallback<T> { fn is_clone(&self) -> bool { false } }
impl<T> CloneFallback<T> for SpecializeWrapper<T> {}
impl<T: Clone> SpecializeWrapper<T> {
pub fn is_clone(&self) -> bool { true }
pub fn do_clone(&self) -> T { self.0.clone() }
}
#[doc(hidden)]
pub trait DebugFallback<T> { fn is_debug(&self) -> bool { false } }
impl<T> DebugFallback<T> for SpecializeWrapper<T> {}
impl<T: core::fmt::Debug> SpecializeWrapper<T> {
pub fn is_debug(&self) -> bool { true }
}
#[doc(hidden)]
pub trait CopyFallback<T> { fn is_copy(&self) -> bool { false } }
impl<T> CopyFallback<T> for SpecializeWrapper<T> {}
impl<T: Copy> SpecializeWrapper<T> {
pub fn is_copy(&self) -> bool { true }
}