This flowchart illustrates the internal workflow of the Pure.DI dependency injection container generator, from setup analysis to successful compilation.
flowchart TD
start@{ shape: circle, label: Start }
setups[fa:fa-search DI setups analysis]
types["`fa:fa-search Types analysis
constructors/methods/properties/fields`"]
subgraph dep[Dependency graph]
option[fa:fa-search Selecting a next dependency set]
creating[fa:fa-cog Creating a dependency graph variant]
verification{fa:fa-check-circle Verification}
end
codeGeneration[fa:fa-code Code generation]
compilation[fa:fa-cog Compilation]
failed@{ shape: dbl-circ, label: Compilation failed }
success@{ shape: dbl-circ, label: Success }
start ==> setups
setups -.->|Has problems| failed
setups ==> types
types -.-> |Has problems| failed
types ==> option
option ==> creating
option -.-> |There are no other options| failed
creating ==> verification
verification -->|Has problems| option
verification ==>|Correct| codeGeneration
codeGeneration ==> compilation
compilation -.-> |Has problems| failed
compilation ==> success
This diagram details the sequential steps involved in the Pure.DI code generation process. It begins with DI setups and type analysis, proceeds to construct a dependency graph with multiple variants, includes verification steps, and culminates in code generation and compilation. It also highlights points where the process can fail.
Use this diagram to understand the internal mechanics of a dependency injection code generator, troubleshoot issues during DI container generation, or explain the build-time process of creating an inversion of control container.
This workflow can be adapted to visualize any complex code generation, compilation, or build pipeline. It can be modified to show steps for other source generators, static analysis tools, or automated build processes by changing the specific analysis and generation phases.