blob: 5705d9202f6eacb5676b9463c14625eef662121f (
plain) (
blame)
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
|
pub use tvix_eval::internal;
pub use tvix_eval::Value;
use tvix_eval_builtin_macros::builtins;
#[builtins]
mod builtins {
use tvix_eval::internal::VM;
use tvix_eval::{ErrorKind, Value};
/// Test docstring.
///
/// It has multiple lines!
#[builtin("identity")]
pub fn builtin_identity(_vm: &mut VM, x: Value) -> Result<Value, ErrorKind> {
Ok(x)
}
#[builtin("tryEval")]
pub fn builtin_try_eval(_: &mut VM, #[lazy] _x: Value) -> Result<Value, ErrorKind> {
todo!()
}
}
#[test]
fn builtins() {
let builtins = builtins::builtins();
assert_eq!(builtins.len(), 2);
let identity = builtins.iter().find(|b| b.name() == "identity").unwrap();
assert_eq!(
identity.documentation(),
Some(
r#" Test docstring.
It has multiple lines!"#
)
);
}
|