pub struct SortedDummyTransform {}
Expand description

Transform with Sorted Order matching. Matches two operators of type TransformDummyOp1, even if disconnected. These operators will be given in execution order, but doesn’t need connectivity. Changes them to TransformDummyOp2.

Implementations§

source§

impl SortedDummyTransform

source

pub fn pattern_rule(&mut self, g: &Graph, subgraph: &Vec<i32>, idx: i32) -> bool

source

pub fn validator_rule(&mut self, g: &Graph, subgraph: &Vec<i32>) -> bool

source

pub fn replace_rule(&mut self, match_: &Vec<i32>, g_ptr: *mut Graph) -> bool

Trait Implementations§

source§

impl Default for SortedDummyTransform

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Transform for SortedDummyTransform

source§

fn pattern_match(&mut self, graph: &Graph) -> Vec<Vec<i32>>

| Generates all matches (stored as ordered | subgraphs) and returns them. | | A match is stored as vector, which | is a mapping to OperatorDefs in Graph. | The order matters. |
source§

fn try_neighbors( &mut self, graph: &Graph, neighbors: &HashMap<i32, Vec<String>>, matched: &Vec<bool>, subgraph_ptr: *mut Vec<i32>, best_subgraph_ptr: *mut Vec<i32> )

| Attempts to append each neighbor to | the end of the subgraph. |
source§

fn pattern_match_helper( &mut self, graph: &Graph, matched: &Vec<bool>, subgraph_ptr: *mut Vec<i32>, best_subgraph_ptr: *mut Vec<i32> )

| A helper function for PatternMatch, | which keeps track of the best subgraph | so far. |
source§

fn pattern_rule(&mut self, g: &Graph, subgraph: &Vec<i32>, idx: i32) -> bool

| The PatternRule essentially answers: | | Given the current subgraph (ordered), | should we append the new node at idx? |
source§

fn validator_rule(&mut self, g: &Graph, subgraph: &Vec<i32>) -> bool

| The ValidatorRule essentially answers: | | Given a subgraph, can we accept it? |
source§

fn replace_rule(&mut self, subgraph: &Vec<i32>, g_ptr: *mut Graph) -> bool

| The ReplaceRule actually mutates the | graph, and applies the transformation | upon the subgraph. |
source§

fn set_pattern_match_type(&mut self, ty: PatternMatchType)

source§

fn replace_pattern(&mut self, matches: &Vec<Vec<i32>>, graph: *mut Graph)

| Applies the replace rule onto each of | the matches found. |
source§

fn apply_to(&mut self, orig_net: &NetDef) -> NetDef

| Apply a Transform onto a NetDef. | | Returns the transformed NetDef. | | The simple interface - performs the | transformation upon a NetDef, and returns | the result. |

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> Ungil for Twhere T: Send,