Add a generic lazy repeat that evaluates its content at each copy index

This commit is contained in:
Dennis Kobert
2026-08-16 11:28:11 +00:00
parent 15f4aa8f98
commit d32caeab52
3 changed files with 136 additions and 1 deletions

View File

@@ -438,6 +438,7 @@ impl<'e> RecordValue<'e> {
/// unconstrained ones.
pub trait DerivedRecordEdge<'derived, C> {
fn eval_derived(&self, cell: &crate::node::StatusCell, input_index: usize, ctx: &C) -> Result<RecordValue<'derived>, crate::gpoll::Interrupt>;
fn extent_at_derived(&self, ctx: &C, level: u8) -> GPoll<crate::gpoll::Extent>;
}
impl<'derived, C, N> DerivedRecordEdge<'derived, C> for N
@@ -447,6 +448,10 @@ where
fn eval_derived(&self, cell: &crate::node::StatusCell, input_index: usize, ctx: &C) -> Result<RecordValue<'derived>, crate::gpoll::Interrupt> {
cell.eval_input(input_index, self, ctx)
}
fn extent_at_derived(&self, ctx: &C, level: u8) -> GPoll<crate::gpoll::Extent> {
self.extent_at(ctx, level)
}
}
/// A record edge at a caller-chosen lifetime; the lifetime is a trait