weavatrix-edit 0.1.7

Deterministic, Unicode-safe edit-plan validation and application for source refactoring
Documentation
use std::hint::black_box;
use std::time::{Duration, Instant};

use weavatrix_edit::{Position, Provenance, TextEdit, TextRange, apply_edits};

fn main() {
    let source = "let value = 0;\n".repeat(65_536);
    let edit = TextEdit::replace(
        TextRange::new(Position::new(32_768, 4), Position::new(32_768, 9)),
        "value",
        "result",
        Provenance::EXACT_LSP,
    );
    let mut samples = Vec::with_capacity(31);
    for _ in 0..31 {
        let started = Instant::now();
        let output = apply_edits(black_box(&source), black_box(std::slice::from_ref(&edit)))
            .expect("benchmark edit must apply");
        black_box(output);
        samples.push(started.elapsed());
    }
    samples.sort_unstable();
    println!(
        "1 MiB / 1 verified UTF-16 edit median: {:?}",
        median(&samples)
    );
}

fn median(samples: &[Duration]) -> Duration {
    samples[samples.len() / 2]
}