From 733037f41b48c77bb5ba2bd95d8ddba3c6ad2119 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Thu, 7 Oct 2021 21:29:01 +0200 Subject: [PATCH] "timestamp" expression --- syndicate-server/src/script/mod.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/syndicate-server/src/script/mod.rs b/syndicate-server/src/script/mod.rs index 80f6755..72ad0e2 100644 --- a/syndicate-server/src/script/mod.rs +++ b/syndicate-server/src/script/mod.rs @@ -74,6 +74,7 @@ pub enum Expr { template: AnyValue, }, Dataspace, + Timestamp, } #[derive(Debug, Clone)] @@ -426,6 +427,7 @@ impl Env { match e { Expr::Template { template } => self.instantiate_value(template), Expr::Dataspace => Ok(AnyValue::domain(Cap::new(&t.create(Dataspace::new())))), + Expr::Timestamp => Ok(AnyValue::new(chrono::Utc::now().to_rfc3339())), } } @@ -763,6 +765,11 @@ impl<'t> Parser<'t> { return Some(Expr::Dataspace); } + if self.peek() == &Value::symbol("timestamp") { + self.drop(); + return Some(Expr::Timestamp); + } + return Some(Expr::Template{ template: self.shift() }); } }