Trait OpaqueFact

Source
pub trait OpaqueFact:
    DynHash
    + Send
    + Sync
    + Debug
    + DynClone
    + Downcast {
    // Required methods
    fn same_as(&self, other: &(dyn OpaqueFact + 'static)) -> bool;
    fn mem_size(&self) -> TDim;

    // Provided methods
    fn compatible_with(&self, other: &(dyn OpaqueFact + 'static)) -> bool { ... }
    fn clarify_dt_shape(&self) -> Option<(DatumType, &[usize])> { ... }
}

Required Methods§

Source

fn same_as(&self, other: &(dyn OpaqueFact + 'static)) -> bool

Source

fn mem_size(&self) -> TDim

Provided Methods§

Source

fn compatible_with(&self, other: &(dyn OpaqueFact + 'static)) -> bool

Whether or not it is acceptable for a Patch to substitute self by other.

In other terms, all operators consuming self MUST accept also accept other without being altered.

Source

fn clarify_dt_shape(&self) -> Option<(DatumType, &[usize])>

Implementations§

Source§

impl dyn OpaqueFact

Source

pub fn is<__T>(&self) -> bool
where __T: OpaqueFact,

Returns true if the trait object wraps an object of type __T.

Source

pub fn downcast<__T>( self: Box<dyn OpaqueFact>, ) -> Result<Box<__T>, Box<dyn OpaqueFact>>
where __T: OpaqueFact,

Returns a boxed object from a boxed trait object if the underlying object is of type __T. Returns the original boxed trait if it isn’t.

Source

pub fn downcast_rc<__T>( self: Rc<dyn OpaqueFact>, ) -> Result<Rc<__T>, Rc<dyn OpaqueFact>>
where __T: OpaqueFact,

Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of type __T. Returns the original Rc-ed trait if it isn’t.

Source

pub fn downcast_ref<__T>(&self) -> Option<&__T>
where __T: OpaqueFact,

Returns a reference to the object within the trait object if it is of type __T, or None if it isn’t.

Source

pub fn downcast_mut<__T>(&mut self) -> Option<&mut __T>
where __T: OpaqueFact,

Returns a mutable reference to the object within the trait object if it is of type __T, or None if it isn’t.

Trait Implementations§

Source§

impl<'clone> Clone for Box<dyn OpaqueFact + 'clone>

Source§

fn clone(&self) -> Box<dyn OpaqueFact + 'clone>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'clone> Clone for Box<dyn OpaqueFact + Send + 'clone>

Source§

fn clone(&self) -> Box<dyn OpaqueFact + Send + 'clone>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'clone> Clone for Box<dyn OpaqueFact + Sync + Send + 'clone>

Source§

fn clone(&self) -> Box<dyn OpaqueFact + Sync + Send + 'clone>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'clone> Clone for Box<dyn OpaqueFact + Sync + 'clone>

Source§

fn clone(&self) -> Box<dyn OpaqueFact + Sync + 'clone>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T> From<T> for Box<dyn OpaqueFact>
where T: OpaqueFact,

Source§

fn from(v: T) -> Box<dyn OpaqueFact>

Converts to this type from the input type.
Source§

impl<'hash> Hash for dyn OpaqueFact + 'hash

Source§

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

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

impl<'hash> Hash for dyn OpaqueFact + Send + 'hash

Source§

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

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

impl<'hash> Hash for dyn OpaqueFact + Sync + Send + 'hash

Source§

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

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

impl<'hash> Hash for dyn OpaqueFact + Sync + 'hash

Source§

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

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

impl PartialEq for Box<dyn OpaqueFact>

Source§

fn eq(&self, other: &Box<dyn OpaqueFact>) -> 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 Eq for Box<dyn OpaqueFact>

Implementors§