+ fbuild Blink build benchmark
+ Generated {generated_at} from {sha}. Median of {trials} trials on {os}/{arch}.
+ All three tools compile the same Arduino Uno bench/blink/blink.ino. Cold removes project outputs and matching compiled framework caches while retaining installed packages and global download/compiler caches. Warm is the immediate no-change rebuild. The narrower warm bar overlays the cold bar.
+
+
+
+ | Tool | Cold median | Warm median | Cold / warm | Version |
+ {rows}
+
+
+ Machine-readable data
+
+ Benchmark workflow run | one-commit publication branch
+
+
+
+"#,
+ generated_at = html_escape(&metadata.generated_at),
+ sha = html_escape(&metadata.git_sha),
+ trials = metadata.trials,
+ os = env::consts::OS,
+ arch = env::consts::ARCH,
+ rows = rows,
+ run_url = html_escape(&metadata.run_url),
+ repository = html_escape(&metadata.repository),
+ )
+}
+
+fn xml_escape(value: &str) -> String {
+ value
+ .replace('&', "&")
+ .replace('<', "<")
+ .replace('>', ">")
+ .replace('"', """)
+ .replace('\'', "'")
+}
+
+fn html_escape(value: &str) -> String {
+ xml_escape(value)
+}
+
+fn parse_options() -> AppResult