Enum brane_ast::compile::CompileStage
source · pub enum CompileStage {
Show 16 variants
None = 0,
All = 15,
Offset = 1,
Attributes = 2,
Resolve = 3,
Typing = 4,
Null = 5,
Data = 6,
Location = 7,
Metadata = 8,
Optimization = 9,
Prune = 10,
Flatten = 11,
Compile = 12,
WorkflowOptimization = 13,
WorkflowResolve = 14,
}
Expand description
Helper enum that defines the compiler stages.
Variants§
None = 0
References nb compile stage.
All = 15
References the last compile stage, i.e., all stages.
Offset = 1
The initial stage where we update AST TextRanges.
Attributes = 2
The second stage where we process attribute statements.
Resolve = 3
The third stage where we resolve the symbol tables.
Typing = 4
The fourth stage where we resolve types (as much as possible).
Null = 5
The fifth stage where we null-types.
Data = 6
The sixth stage where we analyse data dependencies.
Location = 7
The seventh stage where we resolve on-structs.
Metadata = 8
The eighth stage where we add user-supplied metadata to a workflow.
Optimization = 9
The ninth stage where we apply various optimizations, e.g., constant unfolding, constant casting, function inlining, etc.
Prune = 10
The tenth stage where we prune the resulting tree to make compilation easier (without affecting functionality).
Flatten = 11
The eleventh stage is the really final pre-compile stage, where we already collect definitions into a flattened symbol table tree structure.
Compile = 12
The twelth stage where we compile the Program to a Workflow.
WorkflowOptimization = 13
The thirtheenth stage where we optimize the resulting workflow some more.
WorkflowResolve = 14
The fourteenth and final stage where we resolve the ‘next’ fields in the UnresolvedWorkflow so it becomes a Workflow.
Trait Implementations§
source§impl Clone for CompileStage
impl Clone for CompileStage
source§fn clone(&self) -> CompileStage
fn clone(&self) -> CompileStage
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for CompileStage
impl Debug for CompileStage
source§impl Ord for CompileStage
impl Ord for CompileStage
source§fn cmp(&self, other: &CompileStage) -> Ordering
fn cmp(&self, other: &CompileStage) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for CompileStage
impl PartialEq for CompileStage
source§impl PartialOrd for CompileStage
impl PartialOrd for CompileStage
impl Copy for CompileStage
impl Eq for CompileStage
impl StructuralPartialEq for CompileStage
Auto Trait Implementations§
impl Freeze for CompileStage
impl RefUnwindSafe for CompileStage
impl Send for CompileStage
impl Sync for CompileStage
impl Unpin for CompileStage
impl UnwindSafe for CompileStage
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request