use crate::execution_step::execution_context::StreamMapValueDescriptor;
use crate::execution_step::execution_context::StreamValueDescriptor;
use crate::execution_step::Generation;
use crate::execution_step::ValueAggregate;
use air_parser::ast;
use air_trace_handler::merger::MergerApResult;
pub(super) fn generate_value_descriptor<'stream>(
value: ValueAggregate,
stream: &'stream ast::Stream<'_>,
ap_result: &MergerApResult,
) -> StreamValueDescriptor<'stream> {
match ap_result {
MergerApResult::NotMet => StreamValueDescriptor::new(value, stream.name, Generation::New, stream.position),
MergerApResult::Met(met_result) => StreamValueDescriptor::new(
value,
stream.name,
Generation::from_met_result(met_result),
stream.position,
),
}
}
pub(crate) fn generate_map_value_descriptor<'stream>(
value: ValueAggregate,
stream: &'stream ast::StreamMap<'_>,
ap_result: &MergerApResult,
) -> StreamMapValueDescriptor<'stream> {
match ap_result {
MergerApResult::NotMet => StreamMapValueDescriptor::new(value, stream.name, Generation::New, stream.position),
MergerApResult::Met(met_result) => StreamMapValueDescriptor::new(
value,
stream.name,
Generation::from_met_result(met_result),
stream.position,
),
}
}