pub struct BinaryFuncImpl {
pub elem_type: TypeId,
pub f: Box<dyn BinaryArrayOperator>,
}Expand description
Wrapper around a BinaryArrayOperator to conveniently lift it to a FuncImpl
given the TypeId of the argument/return type.
Fields§
§elem_type: TypeId§f: Box<dyn BinaryArrayOperator>Trait Implementations§
Source§impl FuncImpl for BinaryFuncImpl
impl FuncImpl for BinaryFuncImpl
Source§fn evaluate(
&self,
_state: &mut InterpreterState<'_>,
args: Vec<TermReference>,
) -> (TermReference, NewlyEvaluatedTerms)
fn evaluate( &self, _state: &mut InterpreterState<'_>, args: Vec<TermReference>, ) -> (TermReference, NewlyEvaluatedTerms)
Given a handle on the current
InterpreterState (primarily useful if additional terms
need to be evaluated / looked up) and the collection of TermReference arguments to
apply this function implementation to, yields a TermReference to the result, along
with a collection of any NewlyEvaluatedTerms which may have arisen as part of the
implementation of this method. See func_impl.rs in the source for sample implementations.Source§impl HasFuncSignature for BinaryFuncImpl
impl HasFuncSignature for BinaryFuncImpl
Source§fn required_arg_types(&self) -> Vec<TypeId> ⓘ
fn required_arg_types(&self) -> Vec<TypeId> ⓘ
Gets the list of required argument types for the implemented function.
Source§fn ready_to_evaluate(&self, args: &Vec<TermReference>) -> bool
fn ready_to_evaluate(&self, args: &Vec<TermReference>) -> bool
Given a collection of
TermReferences, determines whether
we have sufficiently-many arguments to fully evaluate this function.Source§fn func_type(&self, type_info_directory: &TypeInfoDirectory) -> TypeId
fn func_type(&self, type_info_directory: &TypeInfoDirectory) -> TypeId
Given a
TypeInfoDirectory, obtains the TypeId which
corresponds to the type of this implemented function.Auto Trait Implementations§
impl Freeze for BinaryFuncImpl
impl !RefUnwindSafe for BinaryFuncImpl
impl !Send for BinaryFuncImpl
impl !Sync for BinaryFuncImpl
impl Unpin for BinaryFuncImpl
impl !UnwindSafe for BinaryFuncImpl
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
Mutably borrows from an owned value. Read more