Skip to main content

edikt_core/
lib.rs

1//! edikt core.
2//!
3//! Home of the [`Value`] model, the [`Feature`] capability enum, and the
4//! expression language (lexer, [`parse`], evaluator). The evaluator is built and
5//! tested here against a plain in-memory [`Value`] so the language is correct
6//! independent of any format-preserving CST; the format modules wire the same
7//! AST to their CSTs.
8//!
9//! The format-agnostic `Document` and `Convert` seams arrive with the JSONC
10//! slice, once there is a concrete CST to shape them against.
11
12mod ast;
13mod comment;
14mod comment_edit;
15pub mod convert;
16mod document;
17mod error;
18mod eval;
19mod feature;
20mod lexer;
21mod parser;
22mod strings;
23mod value;
24pub mod wrap;
25
26pub use ast::{BinOp, Expr, Step, render_path};
27pub use comment::{CommentKind, Commented, CommentedNode, Comments, FlatEntry, flatten_commented};
28pub use comment_edit::{apply_comment_mutation, line_index, place_line_comment};
29pub use document::Document;
30pub use error::EditError;
31pub use eval::{EvalError, eval, eval_with_comments};
32pub use feature::Feature;
33pub use parser::{ParseError, parse};
34pub use value::Value;