[][src]Trait tract_hir::infer::Factoid

pub trait Factoid: Debug + Clone + PartialEq + Default + Hash {
    type Concrete: Debug;
    fn concretize(&self) -> Option<Self::Concrete>;
fn unify(&self, other: &Self) -> TractResult<Self>; fn is_concrete(&self) -> bool { ... }
fn unify_with(&mut self, other: &Self) -> TractResult<bool> { ... }
fn unify_with_mut(&mut self, other: &mut Self) -> TractResult<bool> { ... }
fn unify_all(facts: &mut [&mut Self]) -> TractResult<bool> { ... } }

Partial information about any value.

Associated Types

Loading content...

Required methods

fn concretize(&self) -> Option<Self::Concrete>

Tries to transform the fact into a concrete value.

fn unify(&self, other: &Self) -> TractResult<Self>

Tries to unify the fact with another fact of the same type.

Loading content...

Provided methods

fn is_concrete(&self) -> bool

Returns whether the value is fully determined.

fn unify_with(&mut self, other: &Self) -> TractResult<bool>

Tries to unify the fact with another fact of the same type and update self.

Returns true if it actually changed something.

fn unify_with_mut(&mut self, other: &mut Self) -> TractResult<bool>

Tries to unify the fact with another fact of the same type and update both of them.

Returns true if it actually changed something.

fn unify_all(facts: &mut [&mut Self]) -> TractResult<bool>

Tries to unify all facts in the list.

Returns true if it actually changed something.

Loading content...

Implementors

impl Factoid for InferenceFact[src]

type Concrete = Arc<Tensor>

fn concretize(&self) -> Option<Self::Concrete>[src]

Tries to transform the fact into a concrete value.

fn unify(&self, other: &Self) -> TractResult<Self>[src]

Tries to unify the fact with another fact of the same type.

impl Factoid for ShapeFactoid[src]

type Concrete = TVec<TDim>

fn concretize(self: &ShapeFactoid) -> Option<TVec<TDim>>[src]

Tries to transform the fact into a Vec<usize>, or returns None.

fn unify(&self, other: &Self) -> TractResult<Self>[src]

Tries to unify the fact with another fact of the same type.

impl<T: Debug + Clone + PartialEq + Hash> Factoid for GenericFactoid<T>[src]

type Concrete = T

fn concretize(&self) -> Option<T>[src]

Tries to transform the fact into a concrete value.

fn unify(&self, other: &Self) -> TractResult<Self>[src]

Tries to unify the fact with another fact of the same type.

Loading content...