InputNode

Trait InputNode 

Source
pub trait InputNode {
    // Required methods
    fn type_to_node() -> Node;
    fn data_to_node(&self) -> Node;
    fn oneof_variant(&self) -> Option<&'static str>;
    fn parse_unknown(&self, context: &mut Context<'_>) -> bool;
}
Expand description

Trait for all Rust types that represent input tree node types.

Required Methods§

Source

fn type_to_node() -> Node

Creates an empty output node for a protobuf datum of this type.

For primitive types, this fills the value with protobuf’s default.

Source

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>

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, context: &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.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl InputNode for ()

Source§

fn type_to_node() -> Node

Source§

fn data_to_node(&self) -> Node

Source§

fn oneof_variant(&self) -> Option<&'static str>

Source§

fn parse_unknown(&self, _context: &mut Context<'_>) -> bool

Implementors§

Source§

impl InputNode for InnerType

Source§

impl InputNode for substrait_validator::input::proto::substrait::ddl_rel::WriteType

Source§

impl InputNode for substrait_validator::input::proto::substrait::derivation_expression::Kind

Source§

impl InputNode for ExchangeKind

Source§

impl InputNode for TargetType

Source§

impl InputNode for FieldType

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::embedded_function::Kind

Source§

impl InputNode for RexType

Source§

impl InputNode for EnumKind

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::field_reference::ReferenceType

Source§

impl InputNode for RootType

Source§

impl InputNode for LiteralType

Source§

impl InputNode for PrecisionMode

Source§

impl InputNode for Val

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::mask_expression::list_select::list_select_item::Type

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::mask_expression::map_select::Select

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::mask_expression::select::Type

Source§

impl InputNode for NestedType

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::reference_segment::ReferenceType

Source§

impl InputNode for SubqueryType

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::window_function::bound::Kind

Source§

impl InputNode for ExprType

Source§

impl InputNode for MappingType

Source§

impl InputNode for ArgType

Source§

impl InputNode for substrait_validator::input::proto::substrait::function_signature::aggregate::FinalVariableBehavior

Source§

impl InputNode for ArgumentKind

Source§

impl InputNode for substrait_validator::input::proto::substrait::function_signature::scalar::FinalVariableBehavior

Source§

impl InputNode for substrait_validator::input::proto::substrait::function_signature::window::FinalVariableBehavior

Source§

impl InputNode for substrait_validator::input::proto::substrait::parameterized_type::Kind

Source§

impl InputNode for IntegerType

Source§

impl InputNode for substrait_validator::input::proto::substrait::plan_rel::RelType

Source§

impl InputNode for ReadType

Source§

impl InputNode for FileFormat

Source§

impl InputNode for PathType

Source§

impl InputNode for substrait_validator::input::proto::substrait::rel::RelType

Source§

impl InputNode for EmitKind

Source§

impl InputNode for SortKind

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::parameter::Parameter

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::comment::element::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::data_type::class::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::data_type::Variation

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::data_type::parameter::Kind

Source§

impl InputNode for BaseType

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::extension_definition::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::extension_definition::function::Kind

Source§

impl InputNode for BindingType

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::binding::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::metabool::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::metaenum::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::metaint::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::metastr::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::typename::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::typename::parameter::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::typename::parameter_pack::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::typename::variation::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metastatement::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metavalue::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::node::data::Kind

Source§

impl InputNode for NodeType

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::node::primitive_data::Data

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::path::element::Kind

Source§

impl InputNode for substrait_validator::input::proto::substrait::write_rel::WriteType

Source§

impl InputNode for Grouping

Source§

impl InputNode for Measure

Source§

impl InputNode for substrait_validator::input::proto::substrait::capabilities::SimpleExtension

Source§

impl InputNode for ComparisonType

Source§

impl InputNode for WindowRelFunction

Source§

impl InputNode for substrait_validator::input::proto::substrait::derivation_expression::return_program::Assignment

Source§

impl InputNode for BinaryOp

Source§

impl InputNode for ExpressionDecimal

Source§

impl InputNode for ExpressionFixedBinary

Source§

impl InputNode for ExpressionFixedChar

Source§

impl InputNode for ExpressionIntervalCompound

Source§

impl InputNode for ExpressionIntervalDay

Source§

impl InputNode for ExpressionList

Source§

impl InputNode for ExpressionMap

Source§

impl InputNode for ExpressionNamedStruct

Source§

impl InputNode for ExpressionPrecisionTimestamp

Source§

impl InputNode for ExpressionPrecisionTimestampTz

Source§

impl InputNode for ExpressionStruct

Source§

impl InputNode for ExpressionUserDefined

Source§

impl InputNode for ExpressionVarChar

Source§

impl InputNode for IfElse

Source§

impl InputNode for ReturnProgram

Source§

impl InputNode for UnaryOp

Source§

impl InputNode for Broadcast

Source§

impl InputNode for ExchangeTarget

Source§

impl InputNode for MultiBucketExpression

Source§

impl InputNode for RoundRobin

Source§

impl InputNode for ScatterFields

Source§

impl InputNode for SingleBucketExpression

Source§

impl InputNode for ExpandField

Source§

impl InputNode for SwitchingField

Source§

impl InputNode for PythonPickleFunction

Source§

impl InputNode for WebAssemblyFunction

Source§

impl InputNode for Empty

Source§

impl InputNode for OuterReference

Source§

impl InputNode for RootReference

Source§

impl InputNode for IfClause

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::literal::map::KeyValue

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::literal::Decimal

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::literal::IntervalCompound

Source§

impl InputNode for IntervalDayToSecond

Source§

impl InputNode for IntervalYearToMonth

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::literal::List

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::literal::Map

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::literal::PrecisionTimestamp

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::literal::Struct

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::literal::UserDefined

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::literal::VarChar

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::mask_expression::list_select::list_select_item::ListElement

Source§

impl InputNode for ListSlice

Source§

impl InputNode for ListSelectItem

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::mask_expression::map_select::MapKey

Source§

impl InputNode for MapKeyExpression

Source§

impl InputNode for ListSelect

Source§

impl InputNode for MapSelect

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::mask_expression::Select

Source§

impl InputNode for StructItem

Source§

impl InputNode for StructSelect

Source§

impl InputNode for Record

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::nested::map::KeyValue

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::nested::List

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::nested::Map

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::nested::Struct

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::reference_segment::ListElement

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::reference_segment::MapKey

Source§

impl InputNode for StructField

Source§

impl InputNode for Cast

Source§

impl InputNode for EmbeddedFunction

Source§

impl InputNode for Enum

Source§

impl InputNode for FieldReference

Source§

impl InputNode for IfThen

Source§

impl InputNode for Literal

Source§

impl InputNode for MaskExpression

Source§

impl InputNode for MultiOrList

Source§

impl InputNode for Nested

Source§

impl InputNode for ReferenceSegment

Source§

impl InputNode for ScalarFunction

Source§

impl InputNode for SingularOrList

Source§

impl InputNode for Subquery

Source§

impl InputNode for SwitchExpression

Source§

impl InputNode for WindowFunction

Source§

impl InputNode for InPredicate

Source§

impl InputNode for substrait_validator::input::proto::substrait::expression::subquery::Scalar

Source§

impl InputNode for SetComparison

Source§

impl InputNode for SetPredicate

Source§

impl InputNode for IfValue

Source§

impl InputNode for CurrentRow

Source§

impl InputNode for Following

Source§

impl InputNode for Preceding

Source§

impl InputNode for Unbounded

Source§

impl InputNode for Bound

Source§

impl InputNode for ExtensionFunction

Source§

impl InputNode for ExtensionType

Source§

impl InputNode for ExtensionTypeVariation

Source§

impl InputNode for AdvancedExtension

Source§

impl InputNode for SimpleExtensionDeclaration

Source§

impl InputNode for SimpleExtensionUri

Source§

impl InputNode for EnumArgument

Source§

impl InputNode for TypeArgument

Source§

impl InputNode for ValueArgument

Source§

impl InputNode for Aggregate

Source§

impl InputNode for substrait_validator::input::proto::substrait::function_signature::Argument

Source§

impl InputNode for Description

Source§

impl InputNode for FinalArgNormal

Source§

impl InputNode for FinalArgVariadic

Source§

impl InputNode for Implementation

Source§

impl InputNode for substrait_validator::input::proto::substrait::function_signature::Scalar

Source§

impl InputNode for Window

Source§

impl InputNode for IntegerOption

Source§

impl InputNode for IntegerParameter

Source§

impl InputNode for NullableInteger

Source§

impl InputNode for ParameterizedDecimal

Source§

impl InputNode for ParameterizedFixedBinary

Source§

impl InputNode for ParameterizedFixedChar

Source§

impl InputNode for ParameterizedIntervalCompound

Source§

impl InputNode for ParameterizedIntervalDay

Source§

impl InputNode for ParameterizedList

Source§

impl InputNode for ParameterizedMap

Source§

impl InputNode for ParameterizedNamedStruct

Source§

impl InputNode for ParameterizedPrecisionTimestamp

Source§

impl InputNode for ParameterizedPrecisionTimestampTz

Source§

impl InputNode for ParameterizedStruct

Source§

impl InputNode for ParameterizedUserDefined

Source§

impl InputNode for ParameterizedVarChar

Source§

impl InputNode for TypeParameter

Source§

impl InputNode for ArrowReadOptions

Source§

impl InputNode for DelimiterSeparatedTextReadOptions

Source§

impl InputNode for DwrfReadOptions

Source§

impl InputNode for OrcReadOptions

Source§

impl InputNode for ParquetReadOptions

Source§

impl InputNode for FileOrFiles

Source§

impl InputNode for ExtensionTable

Source§

impl InputNode for LocalFiles

Source§

impl InputNode for NamedTable

Source§

impl InputNode for VirtualTable

Source§

impl InputNode for RuntimeConstraint

Source§

impl InputNode for Stats

Source§

impl InputNode for Direct

Source§

impl InputNode for Emit

Source§

impl InputNode for Hint

Source§

impl InputNode for AggregateFunction

Source§

impl InputNode for AggregateRel

Source§

impl InputNode for Capabilities

Source§

impl InputNode for ComparisonJoinKey

Source§

impl InputNode for ConsistentPartitionWindowRel

Source§

impl InputNode for CrossRel

Source§

impl InputNode for DdlRel

Source§

impl InputNode for DerivationExpression

Source§

impl InputNode for ExchangeRel

Source§

impl InputNode for ExpandRel

Source§

impl InputNode for Expression

Source§

impl InputNode for ExpressionReference

Source§

impl InputNode for ExtendedExpression

Source§

impl InputNode for ExtensionLeafRel

Source§

impl InputNode for ExtensionMultiRel

Source§

impl InputNode for ExtensionObject

Source§

impl InputNode for ExtensionSingleRel

Source§

impl InputNode for FetchRel

Source§

impl InputNode for FilterRel

Source§

impl InputNode for FunctionArgument

Source§

impl InputNode for FunctionOption

Source§

impl InputNode for FunctionSignature

Source§

impl InputNode for HashJoinRel

Source§

impl InputNode for JoinRel

Source§

impl InputNode for MergeJoinRel

Source§

impl InputNode for NamedObjectWrite

Source§

impl InputNode for NamedStruct

Source§

impl InputNode for NestedLoopJoinRel

Source§

impl InputNode for ParameterizedType

Source§

impl InputNode for Plan

Source§

impl InputNode for PlanRel

Source§

impl InputNode for PlanVersion

Source§

impl InputNode for ProjectRel

Source§

impl InputNode for ReadRel

Source§

impl InputNode for ReferenceRel

Source§

impl InputNode for Rel

Source§

impl InputNode for RelCommon

Source§

impl InputNode for RelRoot

Source§

impl InputNode for SetRel

Source§

impl InputNode for SortField

Source§

impl InputNode for SortRel

Source§

impl InputNode for substrait_validator::input::proto::substrait::Type

Source§

impl InputNode for Version

Source§

impl InputNode for WriteRel

Source§

impl InputNode for Binary

Source§

impl InputNode for Boolean

Source§

impl InputNode for Date

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::Decimal

Source§

impl InputNode for FixedBinary

Source§

impl InputNode for FixedChar

Source§

impl InputNode for Fp32

Source§

impl InputNode for Fp64

Source§

impl InputNode for I8

Source§

impl InputNode for I16

Source§

impl InputNode for I32

Source§

impl InputNode for I64

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::IntervalCompound

Source§

impl InputNode for IntervalDay

Source§

impl InputNode for IntervalYear

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::List

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::Map

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::Parameter

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::PrecisionTimestamp

Source§

impl InputNode for PrecisionTimestampTz

Source§

impl InputNode for String

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::Struct

Source§

impl InputNode for Time

Source§

impl InputNode for Timestamp

Source§

impl InputNode for TimestampTz

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::UserDefined

Source§

impl InputNode for Uuid

Source§

impl InputNode for substrait_validator::input::proto::substrait::type::VarChar

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::comment::Element

Source§

impl InputNode for Span

Source§

impl InputNode for Class

Source§

impl InputNode for Named

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::data_type::Parameter

Source§

impl InputNode for UserDefinedType

Source§

impl InputNode for UserDefinedVariation

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::data_type::user_defined_type::Definition

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::data_type::user_defined_type::Element

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::data_type::user_defined_variation::Definition

Source§

impl InputNode for Decomposability

Source§

impl InputNode for AggregateProperties

Source§

impl InputNode for WindowProperties

Source§

impl InputNode for Dependency

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::extension_definition::pack::slot::lambda::Argument

Source§

impl InputNode for Lambda

Source§

impl InputNode for Slot

Source§

impl InputNode for Variadicity

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::extension_definition::Function

Source§

impl InputNode for Identifier

Source§

impl InputNode for Metadata

Source§

impl InputNode for Module

Source§

impl InputNode for Pack

Source§

impl InputNode for TypeClass

Source§

impl InputNode for TypeVariation

Source§

impl InputNode for Set

Source§

impl InputNode for Range

Source§

impl InputNode for Binding

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::Function

Source§

impl InputNode for Metabool

Source§

impl InputNode for Metaenum

Source§

impl InputNode for Metaint

Source§

impl InputNode for Metastr

Source§

impl InputNode for Typename

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::typename::Parameter

Source§

impl InputNode for ParameterPack

Source§

impl InputNode for Parameters

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metapattern::typename::Variation

Source§

impl InputNode for WithClass

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::metastatement::Assignment

Source§

impl InputNode for Child

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::node::Data

Source§

impl InputNode for NodeReference

Source§

impl InputNode for PrimitiveData

Source§

impl InputNode for ProtoMessage

Source§

impl InputNode for ProtoPrimitive

Source§

impl InputNode for YamlReference

Source§

impl InputNode for ArrayElement

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::path::Element

Source§

impl InputNode for Field

Source§

impl InputNode for OneOfField

Source§

impl InputNode for RepeatedField

Source§

impl InputNode for TypeVariationNamespace

Source§

impl InputNode for Comment

Source§

impl InputNode for DataType

Source§

impl InputNode for Diagnostic

Source§

impl InputNode for ExtensionDefinition

Source§

impl InputNode for FunctionUsage

Source§

impl InputNode for Metapattern

Source§

impl InputNode for Metastatement

Source§

impl InputNode for Metavalue

Source§

impl InputNode for Node

Source§

impl InputNode for ParseResult

Source§

impl InputNode for Path

Source§

impl InputNode for substrait_validator::input::proto::substrait::validator::SimpleExtension

Source§

impl InputNode for Value

Source§

impl<T: ProtoPrimitive> InputNode for T

Blanket implementation to make all protobuf primitives behave like generic protobuf datums.

Note: if Rust would allow it, we could define blanket implementations for ProtoMessage and ProtoOneOf as well, since they’re always the same. Unfortunately, we can only define a single blanket implementation, so we opt for the one that isn’t already generated via derive macros.