update to use new Runtime

This commit is contained in:
2024-10-15 00:59:16 -04:00
parent 3226487a65
commit bc2b41283f

View File

@@ -7,11 +7,15 @@ pub async fn eval(ctx: Context<'_>,
#[rest] #[rest]
expr: String) -> Result<(), Error> expr: String) -> Result<(), Error>
{ {
let expr = expr.strip_prefix("```").and_then(|s| s.strip_suffix("```")).unwrap_or(&expr); let expr = expr.strip_prefix("```")
.and_then(|s| s.strip_suffix("```")).unwrap_or(&expr);
let values = lamm::evaluate(Cursor::new(expr)); let mut output = Vec::new();
let writer = Cursor::new(&mut output);
let output = values.fold(Ok(String::new()), |acc, v| { let runtime = lamm::Runtime::new(Cursor::new(expr)).stdout(writer);
let values = runtime.values().fold(Ok(String::new()), |acc, v| {
if acc.is_err() { if acc.is_err() {
return acc; return acc;
}; };
@@ -22,9 +26,9 @@ pub async fn eval(ctx: Context<'_>,
Ok(v) => Ok(format!("{x}\n{v}")), Ok(v) => Ok(format!("{x}\n{v}")),
Err(e) => Err(e), Err(e) => Err(e),
} }
}); })?;
ctx.reply(output?).await?; ctx.reply(format!("{}{values}", String::from_utf8(output)?)).await?;
Ok(()) Ok(())
} }