pub struct Definition {
pub extension_id: u64,
pub common: Arc<Common>,
pub compound_name: String,
pub arguments: Vec<ArgumentSlot>,
pub options: HashMap<OptionName, OptionValues>,
pub variadic: VariadicBehavior,
pub session_dependent: bool,
pub deterministic: bool,
pub nullability_handling: NullabilityHandling,
pub return_type: Program,
pub implementations: HashMap<String, Value>,
}Expand description
The definition of a function implementation.
Fields§
§extension_id: u64Unique number within the tree that can be used to refer to this extension when exporting in protobuf form.
common: Arc<Common>Link to information common to a set of function implementations going by the same name.
compound_name: StringThe derived compound name of this function.
arguments: Vec<ArgumentSlot>The expected arguments of the function.
options: HashMap<OptionName, OptionValues>The options of the function.
variadic: VariadicBehaviorSpecifies the variadic behavior of the last argument slot, if any.
session_dependent: boolWhether this function is session-dependent. If set, evaluation of the function may differ from session to session.
deterministic: boolWhether this function is deterministic; if set, the function can be assumed to always return the same value for the same input.
nullability_handling: NullabilityHandlingHow the function deals with nullability. Note that this information is also captured in the parsed argument patterns and return type derivation by means of nullability captures.
return_type: ProgramThe type derivation program used to derive the return type.
implementations: HashMap<String, Value>Implementation map. This is not yet specified in Substrait, so this is still very generic.
Trait Implementations§
Source§impl Clone for Definition
impl Clone for Definition
Source§fn clone(&self) -> Definition
fn clone(&self) -> Definition
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for Definition
impl RefUnwindSafe for Definition
impl Send for Definition
impl Sync for Definition
impl Unpin for Definition
impl UnwindSafe for Definition
Blanket Implementations§
Source§impl<T> AnyExt for T
impl<T> AnyExt for T
Source§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind referenceSource§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable referenceSource§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointerSource§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointerSource§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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more