calyx_opt::traversal

Trait Named

Source
pub trait Named {
    // Required methods
    fn name() -> &'static str;
    fn description() -> &'static str;

    // Provided method
    fn opts() -> Vec<PassOpt> { ... }
}
Expand description

Trait that describes named things. Calling do_pass and do_pass_default. require this to be implemented.

This has to be a separate trait from Visitor because these methods don’t recieve self which means that it is impossible to create dynamic trait objects.

Required Methods§

Source

fn name() -> &'static str

The name of a pass. Is used for identifying passes.

Source

fn description() -> &'static str

A short description of the pass.

Provided Methods§

Source

fn opts() -> Vec<PassOpt>

Set of options that can be passed to the pass. The options contains a tuple of the option name and a description.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Named for AddGuard

Source§

impl Named for Canonicalize

Source§

impl Named for CellShare

Source§

impl Named for ClkInsertion

Source§

impl Named for CollapseControl

Source§

impl Named for CombProp

Source§

impl Named for CompileInvoke

Source§

impl Named for CompileRepeat

Source§

impl Named for CompileStatic

Source§

impl Named for ComponentInliner

Source§

impl Named for ConstantPortProp

Source§

impl Named for DataPathInfer

Source§

impl Named for DeadAssignmentRemoval

Source§

impl Named for DeadCellRemoval

Source§

impl Named for DeadGroupRemoval

Source§

impl Named for DefaultAssigns

Source§

impl Named for Externalize

Source§

impl Named for GoInsertion

Source§

impl Named for GroupToInvoke

Source§

impl Named for GroupToSeq

Source§

impl Named for InferShare

Source§

impl Named for LowerGuards

Source§

impl Named for MergeAssign

Source§

impl Named for Papercut

Source§

impl Named for ProfilerInstrumentation

Source§

impl Named for RemoveIds

Source§

impl Named for ResetInsertion

Source§

impl Named for SimplifyStaticGuards

Source§

impl Named for SimplifyWithControl

Source§

impl Named for StaticFSMOpts

Source§

impl Named for StaticInference

Source§

impl Named for StaticInliner

Source§

impl Named for StaticPromotion

Source§

impl Named for SynthesisPapercut

Source§

impl Named for TopDownCompileControl

Source§

impl Named for UnrollBounded

Source§

impl Named for WellFormed

Source§

impl Named for WireInliner

Source§

impl Named for WrapMain

Source§

impl Named for CompileSync

Source§

impl Named for CompileSyncWithoutSyncReg

Source§

impl Named for DiscoverExternal

Source§

impl Named for ExternalToRef

Source§

impl Named for HoleInliner

Source§

impl Named for Metadata

Source§

impl Named for ParToSeq

Source§

impl Named for RegisterUnsharing