pub enum DecompositionType {
    None,
    Independent,
    Identity,
    Negation,
    And,
    Or,
    Le,
    Lt,
    Xor,
}
Expand description

Basic boolean function families to describe decompositions

Variants§

§

None

No valid decomposition with this variable

§

Independent

The function is independent of this variable

§

Identity

The function returns this variable

§

Negation

The function returns the negation of this variable

§

And

Decomposition possible as And

§

Or

Decomposition possible as Or

§

Le

Decomposition possible as Less-Or-Equal (equivalent to Nand for a top decomposition)

§

Lt

Decomposition possible as Less-Than (equivalent to Nor for a top decomposition)

§

Xor

Decomposition possible as Xor

Implementations§

source§

impl DecompositionType

source

pub fn is_trivial(&self) -> bool

Returns whether the decomposition is trivial (independent, x or !x)

source

pub fn is_and_type(&self) -> bool

Returns whether the decomposition is based on an and gate or similar

source

pub fn is_xor_type(&self) -> bool

Returns whether the decomposition is based on a xor gate

source

pub fn is_simple_gate(&self) -> bool

Returns whether the decomposition is based on any 2-input gate

Trait Implementations§

source§

impl Debug for DecompositionType

source§

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

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

impl Hash for DecompositionType

source§

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

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for DecompositionType

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for DecompositionType

source§

impl StructuralEq for DecompositionType

source§

impl StructuralPartialEq for DecompositionType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V