pub struct ScalarFunction {
pub function_reference: u32,
pub arguments: Vec<FunctionArgument>,
pub options: Vec<FunctionOption>,
pub output_type: Option<Type>,
pub args: Vec<Expression>,
}Expand description
A scalar function call.
Fields§
§function_reference: u32Points to a function_anchor defined in this plan, which must refer to a scalar function in the associated YAML file. Required; avoid using anchor/reference zero.
arguments: Vec<FunctionArgument>The arguments to be bound to the function. This must have exactly the number of arguments specified in the function definition, and the argument types must also match exactly:
- Value arguments must be bound using FunctionArgument.value, and the expression in that must yield a value of a type that a function overload is defined for.
- Type arguments must be bound using FunctionArgument.type.
- Enum arguments must be bound using FunctionArgument.enum followed by Enum.specified, with a string that case-insensitively matches one of the allowed options.
options: Vec<FunctionOption>Options to specify behavior for corner cases, or leave behavior unspecified if the consumer does not need specific behavior in these cases.
output_type: Option<Type>Must be set to the return type of the function, exactly as derived using the declaration in the extension.
args: Vec<Expression>👎Deprecated
Deprecated; use arguments instead.
Trait Implementations§
Source§impl Clone for ScalarFunction
impl Clone for ScalarFunction
Source§fn clone(&self) -> ScalarFunction
fn clone(&self) -> ScalarFunction
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ScalarFunction
impl Debug for ScalarFunction
Source§impl Default for ScalarFunction
impl Default for ScalarFunction
Source§impl InputNode for ScalarFunction
impl InputNode for ScalarFunction
Source§fn type_to_node() -> Node
fn type_to_node() -> Node
Creates an empty output node for a protobuf datum of this type. Read more
Source§fn data_to_node(&self) -> Node
fn data_to_node(&self) -> Node
Creates an empty output node for a protobuf datum with this value.
Source§fn oneof_variant(&self) -> Option<&'static str>
fn oneof_variant(&self) -> Option<&'static str>
Returns the name of the selected variant of a oneof field, if this
is a rust enum used to represent a oneof field.
Source§fn parse_unknown(&self, y: &mut Context<'_>) -> bool
fn parse_unknown(&self, y: &mut Context<'_>) -> bool
Complete the subtrees of this datum in output that have not already
been parsed using UnknownField nodes. Returns whether any such nodes
were added.
Source§impl Message for ScalarFunction
impl Message for ScalarFunction
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message to a buffer. Read more
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message to a newly allocated buffer.
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message with a length-delimiter to a buffer. Read more
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message with a length-delimiter to a newly allocated buffer.
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes an instance of the message from a buffer. Read more
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes a length-delimited instance of the message from the buffer.
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes an instance of the message from a buffer, and merges it into
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes a length-delimited instance of the message from buffer, and
merges it into
self.Source§impl PartialEq for ScalarFunction
impl PartialEq for ScalarFunction
Source§impl ProtoMessage for ScalarFunction
impl ProtoMessage for ScalarFunction
Source§fn proto_message_type() -> &'static str
fn proto_message_type() -> &'static str
Returns the protobuf type name for messages of this type.
impl StructuralPartialEq for ScalarFunction
Auto Trait Implementations§
impl Freeze for ScalarFunction
impl RefUnwindSafe for ScalarFunction
impl Send for ScalarFunction
impl Sync for ScalarFunction
impl Unpin for ScalarFunction
impl UnwindSafe for ScalarFunction
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,
Attempts to downcast this to
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,
Attempts to downcast this to
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,
Attempts to downcast this to
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,
Attempts to downcast this to
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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