pub struct InferenceAnalysis {
    pub latency_data: HashMap<Id, GoDone>,
    pub static_component_latencies: HashMap<Id, u64>,
    /* private fields */
}
Expand description

Default implemnetation is almost certainly not helpful. You should probably use from_ctx instead.

Fields

latency_data: HashMap<Id, GoDone>

component name -> vec<(go signal, done signal, latency)>

static_component_latencies: HashMap<Id, u64>

Maps static component names to their latencies, but there can only be one go port on the component. (This is a subset of the information given by latency_data), and is helpful for inferring invokes. Perhaps someday we should get rid of it and only make it one field.

Implementations

Builds FixUp struct from a ctx. Looks at all primitives and component signatures to get latency information.

Updates the component, given a component name and a new latency and GoDone object.

Updates the component, given a component name and a new latency. Note that this expects that the component already is accounted for in self.latency_data and self.static_component_latencies.

Updates the component, given a component name and a new latency. Note that this expects that the component already is accounted for in self.latency_data and self.static_component_latencies.

Returns Some(latency) if a control statement has a latency, because it is static or is has the @promotable attribute

Removes the @promotable attribute from the control program. Recursively visits the children of the control.

“Fixes Up” the component. In particular:

  1. Removes @promotable annotations for any groups that write to any updated_components.
  2. Try to re-infer groups’ latencies.
  3. Removes all @promotable annotation from the control program.
  4. Re-infers the @promotable annotations for any groups or control. Note that this only fixes up the component’s ``internals’’. It does not fix the component’s signature.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.