@startuml skinparam monochrome true participant "user" as A participant "cargo build" as B participant "build-script" as C participant "build-deps" as D participant "filesystem" as E create B A -> B: start activate B B -> B: compile build.rs create C B -> C: start activate C create D C -> D: rerun-if-changed_paths (filter) activate D D -> E: readDirectories D <- E: DirectoryEntities D -> D: filter Entities B <- D: watch Filtered Entities C <-- D: deactivate D B <-- C: deactivate C B -> B: check Entities'\nTimestamps B -> B: re-compile Rust-Files\nif dirty Timestamps A <-- B: deactivate B @enduml