feat: introduce EvalResult type
This commit is contained in:
@@ -279,13 +279,13 @@ impl Diagnostic for Error {
|
||||
None => None,
|
||||
Some(hint) => {
|
||||
let budget = ExBudget { mem: i64::MAX, cpu: i64::MAX, };
|
||||
let left = pretty::boxed("left", &match hint.left.eval(budget) {
|
||||
(Ok(term), _, _) => format!("{term}"),
|
||||
(Err(err), _, _) => format!("{err}"),
|
||||
let left = pretty::boxed("left", &match hint.left.eval(budget).result() {
|
||||
Ok(term) => format!("{term}"),
|
||||
Err(err) => format!("{err}"),
|
||||
});
|
||||
let right = pretty::boxed("right", &match hint.right.eval(budget) {
|
||||
(Ok(term), _, _) => format!("{term}"),
|
||||
(Err(err), _, _) => format!("{err}"),
|
||||
let right = pretty::boxed("right", &match hint.right.eval(budget).result() {
|
||||
Ok(term) => format!("{term}"),
|
||||
Err(err) => format!("{err}"),
|
||||
});
|
||||
let msg = match hint.bin_op {
|
||||
BinOp::And => Some(format!("{left}\n\nand\n\n{right}\n\nshould both be true.")),
|
||||
|
||||
@@ -37,7 +37,7 @@ use std::{
|
||||
};
|
||||
use telemetry::EventListener;
|
||||
use uplc::{
|
||||
ast::{Constant, DeBruijn, Term},
|
||||
ast::{DeBruijn, Term},
|
||||
machine::cost_model::ExBudget,
|
||||
};
|
||||
|
||||
@@ -726,22 +726,16 @@ where
|
||||
|
||||
scripts
|
||||
.into_par_iter()
|
||||
.map(|script| match script.program.eval(initial_budget) {
|
||||
(Ok(result), remaining_budget, logs) => EvalInfo {
|
||||
success: result != Term::Error
|
||||
&& result != Term::Constant(Constant::Bool(false).into()),
|
||||
.map(|script| {
|
||||
let mut eval_result = script.program.eval(initial_budget);
|
||||
|
||||
EvalInfo {
|
||||
success: !eval_result.failed(),
|
||||
script,
|
||||
spent_budget: initial_budget - remaining_budget,
|
||||
output: Some(result),
|
||||
logs,
|
||||
},
|
||||
(Err(..), remaining_budget, logs) => EvalInfo {
|
||||
success: false,
|
||||
script,
|
||||
spent_budget: initial_budget - remaining_budget,
|
||||
output: None,
|
||||
logs,
|
||||
},
|
||||
spent_budget: eval_result.cost(),
|
||||
logs: eval_result.logs(),
|
||||
output: eval_result.result().ok(),
|
||||
}
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user