pub trait ForExtraChecksImplementor: StableAbi + ExtraChecks {
// Provided methods
fn downcast_with_layout<F, R, E>(
layout_containing_other: &'static TypeLayout,
checker: TypeCheckerMut<'_>,
f: F,
) -> RResult<R, ExtraChecksError>
where Self: 'static,
F: FnOnce(&Self, TypeCheckerMut<'_>) -> Result<R, E>,
E: Send + Sync + ErrorTrait + 'static { ... }
fn downcast_with_object<F, R, E>(
other: ExtraChecksRef<'_>,
checker: TypeCheckerMut<'_>,
f: F,
) -> RResult<R, ExtraChecksError>
where F: FnOnce(&Self, TypeCheckerMut<'_>) -> Result<R, E>,
E: Send + Sync + ErrorTrait + 'static { ... }
}
Expand description
An extension trait for ExtraChecks
implementors.
Provided Methods§
sourcefn downcast_with_layout<F, R, E>(
layout_containing_other: &'static TypeLayout,
checker: TypeCheckerMut<'_>,
f: F,
) -> RResult<R, ExtraChecksError>where
Self: 'static,
F: FnOnce(&Self, TypeCheckerMut<'_>) -> Result<R, E>,
E: Send + Sync + ErrorTrait + 'static,
fn downcast_with_layout<F, R, E>(
layout_containing_other: &'static TypeLayout,
checker: TypeCheckerMut<'_>,
f: F,
) -> RResult<R, ExtraChecksError>where
Self: 'static,
F: FnOnce(&Self, TypeCheckerMut<'_>) -> Result<R, E>,
E: Send + Sync + ErrorTrait + 'static,
Accesses the ExtraChecks
field in layout_containing_other
, downcasted into Self
.
If the closure returns an ExtraChecksError
,it’ll be returned unmodified and unwrapped.
§Returns
-
ROk(_): If
other
was downcasted toSelf
,andf
did not return any errors. -
RErr(ExtraChecksError::NoneExtraChecks): If
layout_containing_other
does not contain an ExtraChecks trait object. -
RErr(ExtraChecksError::TypeChecker): If there is an error while type checking.
-
RErr(ExtraChecksError::ExtraChecks(_)): If there is an custom error within the function.
sourcefn downcast_with_object<F, R, E>(
other: ExtraChecksRef<'_>,
checker: TypeCheckerMut<'_>,
f: F,
) -> RResult<R, ExtraChecksError>
fn downcast_with_object<F, R, E>( other: ExtraChecksRef<'_>, checker: TypeCheckerMut<'_>, f: F, ) -> RResult<R, ExtraChecksError>
Allows one to access other
downcast into Self
.
If the closure returns an ExtraChecksError
,it’ll be returned unmodified and unwrapped.
§Returns
-
ROk(_): If
other
could be downcasted toSelf
,andf
did not return any errors. -
RErr(ExtraChecksError::TypeChecker): If there is an error while type checking.
-
RErr(ExtraChecksError::ExtraChecks(_)): If there is an custom error within the function.