Files
ZacharyZhang-NY a02b555e66 docs(comments): rewrite comments across all crates to the guidelines
Sweep every first-party crate source (1956 .rs files) to the project comment
guidelines: delete redundant restatements, decorative banners, change
narration, and end-of-line comments; keep and tighten the crucial ones
(invariants, bug rationale, SAFETY blocks, ported-source attribution).

No functional code changed. Every edit is proven comment-only against the
prior tree by a comment-stripping lexer (string/char/raw-string aware) plus a
separate doctest-fence check. Where removing a comment made rustfmt or clippy
want to re-lay-out adjacent code, the minimal triggering comment is restored so
code tokens stay byte-identical.

Gates green: cargo fmt --all --check (0 diffs), cargo check and cargo clippy
--workspace --all-targets (0 warnings).

Adds scripts/check_codegen_comment_guidelines.py — the enforcement gate for
these guidelines (flags banners, end-of-line comments, change narration, and
commented-out code).
2026-07-23 16:55:39 -04:00

37 lines
1.4 KiB
Rust

//! Benchmark harness for the clipboard paste hot path.
//!
//! Runs the same `get_attachments()` probe the pager's paste pipeline executes
//! and prints the outcome plus wall time. Compare 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 kigi-shared --example clipboard_probe
//! hyperfine --warmup 2 \
//! -n native './target/release/examples/clipboard_probe' \
//! -n osascript 'KIGI_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 = kigi_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(())
}