Enum fj_core::operations::replace::ReplaceOutput
source · pub enum ReplaceOutput<Original, Updated> {
Original(Original),
Updated(Updated),
}
Expand description
The output of a replace operation
See module documentation for more information.
Variants§
Original(Original)
The original object that the replace operation was called on
If this variant is returned, the object to be replaced was not referenced, and no replacement happened.
Updated(Updated)
The updated version of the object that the operation was called on
If this variant is returned, a replacement happened, and this is the new version of the object that reflects that.
This is a bare object, not a Handle
, to leave the decision of whether
to insert the object to the caller. This might be relevant, if the
result of the replacement is an invalid intermediate step in the
modeling process. The validation infrastructure currently provides no
good ways to deal with invalid intermediate results, even if the end
result ends up valid.
Implementations§
source§impl<Original, Updated> ReplaceOutput<Original, Updated>
impl<Original, Updated> ReplaceOutput<Original, Updated>
sourcepub fn was_updated(&self) -> bool
pub fn was_updated(&self) -> bool
Indicate whether the original object was updated
sourcepub fn map_original<T>(
self,
f: impl FnOnce(Original) -> T
) -> ReplaceOutput<T, Updated>
pub fn map_original<T>( self, f: impl FnOnce(Original) -> T ) -> ReplaceOutput<T, Updated>
Map the Original
variant using the provided function
sourcepub fn map_updated<T>(
self,
f: impl FnOnce(Updated) -> T
) -> ReplaceOutput<Original, T>
pub fn map_updated<T>( self, f: impl FnOnce(Updated) -> T ) -> ReplaceOutput<Original, T>
Map the Updated
variant using the provided function
source§impl<T> ReplaceOutput<T, T>
impl<T> ReplaceOutput<T, T>
sourcepub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Return the wrapped object, whether it’s the original or was updated
Auto Trait Implementations§
impl<Original, Updated> Freeze for ReplaceOutput<Original, Updated>
impl<Original, Updated> RefUnwindSafe for ReplaceOutput<Original, Updated>where
Original: RefUnwindSafe,
Updated: RefUnwindSafe,
impl<Original, Updated> Send for ReplaceOutput<Original, Updated>
impl<Original, Updated> Sync for ReplaceOutput<Original, Updated>
impl<Original, Updated> Unpin for ReplaceOutput<Original, Updated>
impl<Original, Updated> UnwindSafe for ReplaceOutput<Original, Updated>where
Original: UnwindSafe,
Updated: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.