summaryrefslogtreecommitdiff
path: root/rust/src/web.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src/web.rs')
-rw-r--r--rust/src/web.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/rust/src/web.rs b/rust/src/web.rs
index 0bf36a5..c63268a 100644
--- a/rust/src/web.rs
+++ b/rust/src/web.rs
@@ -5,13 +5,14 @@ use futures::lock::Mutex;
use handlebars::{DirectorySourceOptions, Handlebars};
use log::info;
use proptest::test_runner::{Config, RngAlgorithm, TestRng, TestRunner};
+use rand::Rng;
use serde::{Deserialize, Serialize};
use std::time::Duration;
use std::{collections::HashMap, sync::Arc};
use tokio::task;
use uuid::Uuid;
-use lambda::lambda::{eval_all, eval_whnf, generate_expr, generate_exprs, Environment};
+use lambda::lambda::{eval_all, eval_whnf, generate_expr, generate_exprs, gensym, Environment};
use lambda::parser::{parse, parse_total};
#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
@@ -221,6 +222,10 @@ async fn eval(input: String) -> impl Responder {
let exprs = parse_total(&input);
match exprs {
Ok(exprs) => {
+ let mut rng = rand::thread_rng();
+ if rng.gen_range(0..10) <= 2 {
+ return HttpResponse::Ok().body(gensym());
+ }
let output = eval_all(&exprs)
.iter()
.map(|v| format!("{}", v))