Skip to main content

draxl_patch/
lib.rs

1#![forbid(unsafe_code)]
2//! Structured patch operations over the Draxl semantic model.
3//!
4//! The patch layer applies semantic edit operators directly to the Draxl AST.
5//! It is intentionally slot-aware, identity-aware, and attachment-aware so
6//! callers can express concurrent-friendly structural edits instead of
7//! rewriting text.
8
9mod apply;
10mod error;
11mod model;
12mod schema;
13mod text;
14
15pub use apply::{apply_op, apply_op_for_language, apply_ops, apply_ops_for_language};
16pub use error::PatchError;
17pub use model::{
18    PatchDest, PatchNode, PatchOp, PatchPath, PatchValue, RankedDest, SlotOwner, SlotRef,
19};
20pub use text::{
21    apply_patch_text, apply_patch_text_for_language, parse_patch_ops, resolve_patch_ops,
22    resolve_patch_ops_for_language, PatchTextError, SurfaceDest, SurfaceFragment, SurfaceNodeRef,
23    SurfacePatchOp, SurfacePath, SurfacePathSegment, SurfaceRankedDest, SurfaceSlotOwner,
24    SurfaceSlotRef, SurfaceValue, SurfaceValueKind,
25};