Skip to main content

recast_core/
lib.rs

1//! recast core engine.
2//!
3//! Compiles a regex pattern, walks a set of paths honoring ignore rules,
4//! produces per-file rewrites with unified-diff previews, enforces the
5//! match-count guard, and runs an idempotency (convergence) check before
6//! applying any change. The binary crate wires this engine to a CLI.
7
8mod commit;
9mod error;
10#[cfg(feature = "serde")]
11pub mod json;
12mod lockfile;
13mod parallel;
14mod pattern;
15mod plan;
16#[cfg(test)]
17mod proptests;
18mod rewrite;
19#[cfg(feature = "script")]
20mod script;
21mod search;
22#[cfg(any(
23    feature = "lang-rust",
24    feature = "lang-ts",
25    feature = "lang-js",
26    feature = "lang-python",
27))]
28mod structural;
29mod template_scan;
30mod walker;
31
32pub use commit::{ApplyOutcome, RecoverySummary, apply_changes, recover_sweep};
33pub use error::{Error, Result};
34pub use lockfile::{WorkspaceLock, acquire_workspace_lock};
35pub use parallel::build_pool;
36pub use pattern::{CompiledPattern, PatternOptions};
37#[cfg(feature = "script")]
38pub use plan::plan_rewrite_scripted;
39pub use plan::{FileChange, Plan, PlanOptions, PlanOutcome, check_match_counts, plan_rewrite};
40#[cfg(feature = "script")]
41pub use rewrite::rewrite_text_scripted;
42pub use rewrite::{RewriteOutcome, label_for_path, rewrite_text, unified_diff};
43#[cfg(feature = "script")]
44pub use script::ScriptRewriter;
45pub use search::{SearchFile, SearchMatch, SearchOptions, SearchPlan, plan_search};
46#[cfg(any(
47    feature = "lang-rust",
48    feature = "lang-ts",
49    feature = "lang-js",
50    feature = "lang-python",
51))]
52pub use structural::{
53    Language, StructuralOutcome, compile_friendly_query, plan_structural_rewrite,
54    plan_structural_search, structural_rewrite, structural_rewrite_friendly, structural_search,
55};
56pub use walker::{WalkOptions, walk_paths};