pub mod anchor;
pub mod budget;
pub mod diff;
mod lang;
pub mod skeleton;
pub mod symbols;
pub mod tokens;
pub use lang::Lang;
#[cfg(test)]
mod tests {
use super::*;
use std::collections::HashSet;
#[test]
fn skeleton_then_anchored_edit_then_diff() {
let src = "\
/// Doubles n.
fn double(n: i32) -> i32 {
n * 2
}
";
let skel = skeleton::skeletonize(src, Lang::Rust, &HashSet::new());
assert!(skel.contains("fn double(n: i32) -> i32"));
assert!(!skel.contains("n * 2"));
let anchor = anchor::anchor_of(" n * 2");
let edited =
anchor::apply_edits(src, &[anchor::Edit::replace(anchor, " n * 3")]).unwrap();
assert!(edited.contains("n * 3"));
let d = diff::unified_diff(src, &edited, 0);
assert!(d.contains("- n * 2"));
assert!(d.contains("+ n * 3"));
}
}