ravenrs_live/lib.rs
1//! An interpreter of the Rust that small RavenRS examples are written in, so they run in a
2//! playground without a compiler: `let` and `let .. else`, closures, calls and chains of
3//! builders, tuples, `vec!`, ranges and iterators, `format!`, `if`, `match`, `Option`, `Result`
4//! and `?`, `State` and `Binding::map`, and the program's own functions, constants, structs and
5//! `impl` blocks. The host program's types are reached through a [`Registry`], which
6//! `#[ravenrs_live::expose]` fills from the host's own `impl` blocks, structs, enums and modules.
7//!
8//! What it does not read is an error with its line and column, never a guess.
9
10#[doc(hidden)]
11pub mod bridge;
12mod eval;
13mod registry;
14mod value;
15
16pub use eval::{Closure, LiveError, run};
17pub use ravenrs_live_derive::expose;
18pub use registry::{Fallback, HostFn, Registry};
19pub use value::{FromLive, Host, IntoLive, Record, Value, late_problems, on_output, printed, report};