grok-build-upstream-mirror/crates/codegen/xai-grok-shared/examples/clipboard_probe.rs
grokkybara[bot] c68e39f604 Publish harness and TUI open-source
initial sync from the monorepo
2026-07-16 06:46:02 +01:00

37 lines
1.5 KiB
Rust

//! Reproducible harness for benchmarking clipboard attachment reads
//! (the paste hot path).
//!
//! Runs one `get_attachments()` — the same unified probe the pager's paste
//! pipeline executes — and prints the outcome plus wall time. Benchmark the
//! native in-process read against the `osascript` fallback with hyperfine:
//!
//! ```text
//! # put an image on the pasteboard first, e.g.:
//! # osascript -e 'set the clipboard to (read (POSIX file "shot.png") as «class PNGf»)'
//! cargo build --release -p xai-grok-shared --example clipboard_probe
//! hyperfine --warmup 2 \
//! -n native './target/release/examples/clipboard_probe' \
//! -n osascript 'GROK_CLIPBOARD_NO_NATIVE_READ=1 ./target/release/examples/clipboard_probe'
//! ```
//!
//! Exits non-zero when the read errors so hyperfine aborts loudly instead of
//! averaging failures.
fn main() -> anyhow::Result<()> {
let started = std::time::Instant::now();
let attachments = xai_grok_shared::clipboard::get_attachments()?;
let elapsed_ms = started.elapsed().as_secs_f64() * 1e3;
let image = attachments
.image
.map(|img| format!("{} ({} bytes)", img.mime_type, img.data.len()));
let file_urls = attachments
.file_urls
.map(|urls| format!("{} path(s)", urls.lines().count()));
println!(
"{elapsed_ms:.1} ms image={} file_urls={}",
image.as_deref().unwrap_or("none"),
file_urls.as_deref().unwrap_or("none"),
);
Ok(())
}