Derive pushed index levels per input and pop them when lifting requirements

This commit is contained in:
Dennis Kobert
2026-08-24 17:05:14 +00:00
parent 9cdaf06ca9
commit 2c84bb478f
7 changed files with 49 additions and 13 deletions

View File

@@ -98,7 +98,7 @@ fn boolean_core<'e>(
/// Combines the geometric forms of one or more closed paths into a new vector path that results from cutting or joining the paths by the chosen method.
#[node_macro::node(category("Vector: Modifier"), memoize)]
fn boolean_operation<'e>(
ctx: impl Ctx + ExtractArena<'e> + core_types::ExtractIndex + core_types::InjectIndex + Copy,
ctx: impl Ctx + ExtractArena<'e> + core_types::InjectIndex + Copy,
/// The wire of vector paths to perform the boolean operation on. Nested groups are automatically flattened.
content: IList<Graphic>,
/// Which boolean operation to perform on the paths.
@@ -134,7 +134,7 @@ fn boolean_operation<'e>(
/// The boolean operation over a plain vector level, as [`boolean_operation`].
#[node_macro::node(category(""))]
fn boolean_operation_vector<'e>(
ctx: impl Ctx + ExtractArena<'e> + core_types::ExtractIndex + core_types::InjectIndex + Copy,
ctx: impl Ctx + ExtractArena<'e> + core_types::InjectIndex + Copy,
content: IList<Vector>,
operation: BooleanOperation,
) -> Result<

View File

@@ -237,9 +237,8 @@ fn assign_colors_graphic<'e>(
Ok((element, transform, layer_path))
}
/// Where each lane's colors start in the level's flattened vector run, so the
/// level is counted once per evaluation rather than once per lane. `offsets`
/// holds one entry per lane plus the total.
/// Where each lane's colors start in the level's flattened vector run, valid
/// for one key and generation. `offsets` holds one entry per lane plus the total.
#[derive(Debug)]
pub struct LaneOffsets {
key: u64,