1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//! Rhai scripting surface over the type-erased [`Vista`](crate::vista::Vista).
//!
//! Scripts touch data through one vocabulary, [`DataVocab`]:
//!
//! - `table(name)` returns a [`Handle`], an immutable description of a set;
//! `where`, `sort`, `search`, `limit` and `ref` narrow it into new handles
//! (see `narrow`);
//! - read terminals (`list`, `get`, `first`, `count`, `ids`, `columns`,
//! `references`, `capabilities`) resolve the handle and read;
//! - write terminals (`insert`, `upsert`, `patch`, `delete`, `import_from`) write
//! to the handle's table.
//!
//! [`Terminals`] picks which terminals a host gets, and a
//! [`VistaResolver`](crate::VistaResolver) given through
//! [`DataVocab::with_resolver`] backs `table(name)`; a driver builds one over
//! its factory with [`script_tables`]. Backends add their own
//! verbs through [`TableShell::register_rhai_extensions`](crate::TableShell::register_rhai_extensions).
//! Terminal futures run through [`block_on`].
//!
//! A denied or unsupported write throws: [`Writes::Denied`] throws its
//! message, and a write the Vista refuses throws the Vista's error.
//!
//! [`run_script`] and [`preview_script`] are the agent-tool runners; the
//! `eval_*` functions evaluate YAML script slots into Vistas.
pub use block_on;
pub use ;
pub use ;
pub use Handle;
pub use ;
pub use lazy_value_closure;
pub use RecordDraft;
pub use ;
pub use script_tables;
pub use ;