tvl-depot/tvix/eval/builtin-macros/tests/tests.rs
Vincent Ambo b3b1f649d6 chore(tvix): fix trivial clippy lints
Relates to b/321.

Change-Id: I37284f89b186e469eb432e2bbedb37aa125a6ad4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9961
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
Autosubmit: tazjin <tazjin@tvl.su>
2023-11-05 20:28:37 +00:00

45 lines
1 KiB
Rust

pub use tvix_eval::{Builtin, Value};
use tvix_eval_builtin_macros::builtins;
#[builtins]
mod builtins {
use tvix_eval::generators::{Gen, GenCo};
use tvix_eval::{ErrorKind, Value};
/// Test docstring.
///
/// It has multiple lines!
#[builtin("identity")]
pub async fn builtin_identity(co: GenCo, x: Value) -> Result<Value, ErrorKind> {
Ok(x)
}
#[builtin("tryEval")]
pub async fn builtin_try_eval(co: GenCo, #[lazy] _x: Value) -> Result<Value, ErrorKind> {
unimplemented!("builtin is never called")
}
}
#[test]
fn builtins() {
let builtins = builtins::builtins();
assert_eq!(builtins.len(), 2);
let (_, identity) = builtins
.iter()
.find(|(name, _)| *name == "identity")
.unwrap();
match identity {
Value::Builtin(identity) => assert_eq!(
identity.documentation(),
Some(
r#" Test docstring.
It has multiple lines!"#
)
),
_ => panic!("builtin was not a builtin"),
}
}