@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