pub struct SplitHandleOperation<'c> { /* private fields */ }
Expand description
A split_handle
operation. Splits a handle of payload ops into handles with a single op.
Splits handle
into one or multiple handles, as specified by the number
of results of this operation. handle
should be mapped to as many payload
ops as there are results. Otherwise, this transform will fail silently by
default. Each result handle is mapped to exactly one payload op. The order
of the payload ops is preserved, i.e., the i-th payload op is mapped to the
i-th result handle.
This operation is useful for ensuring a statically known number of
operations are tracked by the source handle
and to extract them into
individual handles that can be further manipulated in isolation.
If there are more payload ops than results, the remaining ops are mapped to
the result with index overflow_result
. If no overflow_result
is
specified, the transform fails silently.
If there are fewer payload ops than results, the transform fails silently
if fail_on_payload_too_small
is set to “true”. Otherwise, it succeeds and
the remaining result handles are not mapped to any op. It also succeeds if
handle
is empty and pass_through_empty_handle
is set to “true”,
regardless of fail_on_payload_too_small
.
Implementations§
source§impl<'c> SplitHandleOperation<'c>
impl<'c> SplitHandleOperation<'c>
sourcepub fn as_operation(&self) -> &Operation<'c>
pub fn as_operation(&self) -> &Operation<'c>
Returns a generic operation.
sourcepub fn builder(
context: &'c Context,
location: Location<'c>
) -> SplitHandleOperationBuilder<'c, Unset, Unset>
pub fn builder( context: &'c Context, location: Location<'c> ) -> SplitHandleOperationBuilder<'c, Unset, Unset>
Creates a builder.