From f1cb14729ba56b154b9c918a8445ada512e0029f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Fern=C3=A1ndez=20L=C3=B3pez?= Date: Thu, 9 Sep 2021 01:19:23 +0200 Subject: [PATCH] Implement debugging builtins --- crates/burrego/src/opa/builtins/debugging.rs | 16 ++++++++++++++++ crates/burrego/src/opa/builtins/mod.rs | 4 ++++ 2 files changed, 20 insertions(+) create mode 100644 crates/burrego/src/opa/builtins/debugging.rs diff --git a/crates/burrego/src/opa/builtins/debugging.rs b/crates/burrego/src/opa/builtins/debugging.rs new file mode 100644 index 00000000..06c00280 --- /dev/null +++ b/crates/burrego/src/opa/builtins/debugging.rs @@ -0,0 +1,16 @@ +use anyhow::{anyhow, Result}; + +#[tracing::instrument(skip(args))] +pub fn trace(args: &[serde_json::Value]) -> Result { + if args.len() != 1 { + return Err(anyhow!("Wrong number of arguments given to trace")); + } + + let message_str = args[0] + .as_str() + .ok_or_else(|| anyhow!("trace: 1st parameter is not a string"))?; + + tracing::debug!("{}", message_str); + + Ok(serde_json::Value::Null) +} diff --git a/crates/burrego/src/opa/builtins/mod.rs b/crates/burrego/src/opa/builtins/mod.rs index 0c999edc..23290259 100644 --- a/crates/burrego/src/opa/builtins/mod.rs +++ b/crates/burrego/src/opa/builtins/mod.rs @@ -1,6 +1,7 @@ use anyhow::Result; use std::collections::HashMap; +pub mod debugging; pub mod encoding; pub mod regex; pub mod strings; @@ -11,6 +12,9 @@ pub type BuiltinFunctionsMap = pub fn get_builtins() -> BuiltinFunctionsMap { let mut functions: BuiltinFunctionsMap = HashMap::new(); + // debugging + functions.insert("trace", debugging::trace); + // encoding functions.insert( "base64url.encode_no_pad",