Trait MagicAny

Source
pub trait MagicAny:
    Any
    + Send
    + Sync {
    // Required methods
    fn magic_any_arc(self: Arc<Self>) -> Arc<dyn Any + Sync + Send>;
    fn magic_debug(&self, f: &mut Formatter<'_>) -> Result;
    fn magic_eq(&self, other: &dyn MagicAny) -> bool;
    fn magic_hash(&self, hasher: &mut dyn Hasher);
    fn magic_trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext);
    fn magic_type_name(&self) -> &'static str;
}

Required Methods§

Source

fn magic_any_arc(self: Arc<Self>) -> Arc<dyn Any + Sync + Send>

Source

fn magic_debug(&self, f: &mut Formatter<'_>) -> Result

Source

fn magic_eq(&self, other: &dyn MagicAny) -> bool

Source

fn magic_hash(&self, hasher: &mut dyn Hasher)

Source

fn magic_trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source

fn magic_type_name(&self) -> &'static str

Implementations§

Source§

impl dyn MagicAny

Source

pub fn is<T: MagicAny>(&self) -> bool

Returns true if the boxed type is the same as T

Source

pub fn downcast_ref<T: MagicAny>(&self) -> Option<&T>

Returns some reference to the boxed value if it is of type T, or None if it isn’t.

Source

pub unsafe fn downcast_ref_unchecked<T: MagicAny>(&self) -> &T

Returns a reference to the boxed value, blindly assuming it to be of type T. If you are not absolutely certain of T, you must not call this.

Source

pub fn downcast_mut<T: MagicAny>(&mut self) -> Option<&mut T>

Returns some mutable reference to the boxed value if it is of type T, or None if it isn’t.

Source

pub unsafe fn downcast_mut_unchecked<T: MagicAny>(&mut self) -> &mut T

Returns a mutable reference to the boxed value, blindly assuming it to be of type T. If you are not absolutely certain of T, you must not call this.

Source§

impl dyn MagicAny

Source

pub fn downcast<T: MagicAny>(self: Box<Self>) -> Result<Box<T>, Box<Self>>

Returns the boxed value if it is of type T, or Err(Self) if it isn’t.

Source

pub unsafe fn downcast_unchecked<T: MagicAny>(self: Box<Self>) -> Box<T>

Returns the boxed value, blindly assuming it to be of type T. If you are not absolutely certain of T, you must not call this.

Source§

impl dyn MagicAny

Source

pub fn as_serialize<T: Debug + Eq + Hash + Serialize + Send + Sync + TraceRawVcs + 'static>( &self, ) -> &dyn Serialize

Trait Implementations§

Source§

impl Debug for dyn MagicAny

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for dyn MagicAny

Source§

fn hash<H: Hasher>(&self, hasher: &mut H)

Feeds this value into the given Hasher. Read more
Source§

impl PartialEq for dyn MagicAny

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl TraceRawVcs for dyn MagicAny

Source§

fn trace_raw_vcs(&self, trace_context: &mut TraceRawVcsContext)

Source§

fn get_raw_vcs(&self) -> Vec<RawVc>

Source§

impl Eq for dyn MagicAny

Implementors§

Source§

impl<T: Debug + Eq + Hash + Send + Sync + TraceRawVcs + 'static> MagicAny for T