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>

source

pub fn name() -> &'static str

Returns a name.

source

pub fn as_operation(&self) -> &Operation<'c>

Returns a generic operation.

source

pub fn builder( context: &'c Context, location: Location<'c> ) -> SplitHandleOperationBuilder<'c, Unset, Unset>

Creates a builder.

source

pub fn results(&self) -> impl Iterator<Item = OperationResult<'c, '_>>

source

pub fn handle(&self) -> Result<Value<'c, '_>, Error>

source

pub fn pass_through_empty_handle(&self) -> Result<Attribute<'c>, Error>

source

pub fn set_pass_through_empty_handle(&mut self, value: Attribute<'c>)

source

pub fn remove_pass_through_empty_handle(&mut self) -> Result<(), Error>

source

pub fn fail_on_payload_too_small(&self) -> Result<Attribute<'c>, Error>

source

pub fn set_fail_on_payload_too_small(&mut self, value: Attribute<'c>)

source

pub fn remove_fail_on_payload_too_small(&mut self) -> Result<(), Error>

source

pub fn overflow_result(&self) -> Result<IntegerAttribute<'c>, Error>

source

pub fn set_overflow_result(&mut self, value: IntegerAttribute<'c>)

source

pub fn remove_overflow_result(&mut self) -> Result<(), Error>

Trait Implementations§

source§

impl<'c> From<SplitHandleOperation<'c>> for Operation<'c>

source§

fn from(operation: SplitHandleOperation<'c>) -> Self

Converts to this type from the input type.
source§

impl<'c> TryFrom<Operation<'c>> for SplitHandleOperation<'c>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(operation: Operation<'c>) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.