pub struct Plan {
pub version: Option<Version>,
pub extension_uris: Vec<SimpleExtensionUri>,
pub extension_urns: Vec<SimpleExtensionUrn>,
pub extensions: Vec<SimpleExtensionDeclaration>,
pub relations: Vec<PlanRel>,
pub advanced_extensions: Option<AdvancedExtension>,
pub expected_type_urls: Vec<String>,
pub parameter_bindings: Vec<DynamicParameterBinding>,
pub type_aliases: Vec<TypeAlias>,
}
Expand description
Describe a set of operations to complete. For compactness sake, identifiers are normalized at the plan level.
Fields§
§version: Option<Version>
Substrait version of the plan. Optional up to 0.17.0, required for later versions.
extension_uris: Vec<SimpleExtensionUri>
a list of yaml specifications this plan may depend on this is now deprecated and extension_urns should be used instead.
extension_urns: Vec<SimpleExtensionUrn>
a list of extension URNs this plan may depend on
extensions: Vec<SimpleExtensionDeclaration>
a list of extensions this plan may depend on
relations: Vec<PlanRel>
one or more relation trees that are associated with this plan.
advanced_extensions: Option<AdvancedExtension>
additional extensions associated with this plan.
expected_type_urls: Vec<String>
A list of com.google.Any entities that this plan may use. Can be used to warn if some embedded message types are unknown. Note that this list may include message types that are ignorable (optimizations) or that are unused. In many cases, a consumer may be able to work with a plan even if one or more message types defined here are unknown.
parameter_bindings: Vec<DynamicParameterBinding>
An optional list of bindings for dynamic parameters used in this plan. Each binding maps a parameter_anchor to its corresponding runtime value.
type_aliases: Vec<TypeAlias>
An optional list of type aliases. Types can be specified here once, and then referenced within the plan using the TypeAliasReference type. This feature is intended to assist with the usability of parameterized types, which require that all parameters be specified when they are declared. This can bloat plans with redundant redeclarations, especially if the parameterized types being declared have many parameters (e.g., struct with many fields, nested parameterized types, string as a type parameter).
Trait Implementations§
§impl<'de> Deserialize<'de> for Plan
impl<'de> Deserialize<'de> for Plan
§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl Message for Plan
impl Message for Plan
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
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,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
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,
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,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
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,
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,
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,
self
.