SimpleExtensions

Struct SimpleExtensions 

Source
pub struct SimpleExtensions {
    urns: BTreeMap<u32, String>,
    extensions: BTreeMap<(u32, ExtensionKind), (u32, CompoundName)>,
}
Expand description

ExtensionLookup contains mappings from anchors to extension URNs, functions, types, and type variations.

Fields§

§urns: BTreeMap<u32, String>§extensions: BTreeMap<(u32, ExtensionKind), (u32, CompoundName)>

Implementations§

Source§

impl SimpleExtensions

Source

pub fn new() -> Self

Source

pub fn from_extensions<'a>( urns: impl IntoIterator<Item = &'a SimpleExtensionUrn>, extensions: impl IntoIterator<Item = &'a SimpleExtensionDeclaration>, ) -> (Self, Vec<InsertError>)

Source

pub fn add_extension_urn( &mut self, urn: String, anchor: u32, ) -> Result<(), InsertError>

Source

pub fn add_extension( &mut self, kind: ExtensionKind, urn: u32, anchor: u32, name: String, ) -> Result<(), InsertError>

Source

pub fn is_empty(&self) -> bool

Source

pub fn to_extension_urns(&self) -> Vec<SimpleExtensionUrn>

Convert the extension URNs to protobuf format for Plan construction.

Source

pub fn to_extension_declarations(&self) -> Vec<SimpleExtensionDeclaration>

Convert the extensions to protobuf format for Plan construction.

Source

pub fn write<W: Write>(&self, w: &mut W, indent: &str) -> Result

Write the extensions to the given writer, with the given indent.

The header will be included if there are any extensions.

Source

pub fn to_string(&self, indent: &str) -> String

Source§

impl SimpleExtensions

Source

pub fn find_urn(&self, anchor: u32) -> Result<&str, MissingReference>

Source

pub fn find_by_anchor( &self, kind: ExtensionKind, anchor: u32, ) -> Result<(u32, &CompoundName), MissingReference>

Source

pub fn find_by_name( &self, kind: ExtensionKind, name: &str, ) -> Result<u32, MissingReference>

Source

pub fn is_name_unique( &self, kind: ExtensionKind, anchor: u32, name: &str, ) -> Result<bool, MissingReference>

Returns true when no other extension of the same kind has the same full compound name (i.e. the anchor display can be suppressed).

Returns Err when anchor is not registered for kind.

Source

pub fn lookup_function( &self, anchor: u32, ) -> Result<ResolvedFunction<'_>, MissingReference>

Look up a function anchor and return its full resolution metadata. The caller already has anchor from the Substrait plan and needs the name, URN, and uniqueness flags.

Source

pub fn resolve_function( &self, name: &str, anchor: Option<u32>, ) -> Result<ResolvedFunction<'_>, MissingReference>

Resolve a function name (plain or compound) with an optional explicit anchor to a ResolvedFunction. the caller has a text name and an optional anchor from the plan source and needs the canonical anchor plus uniqueness info.

  • anchor = Some(a) — validates that name matches the stored name (exact compound-name match or base-name match, e.g. "equal" matches stored "equal:any_any").
  • anchor = None — tries an exact match first; if not found and name contains no :, falls back to base-name search so that equal(…) resolves when equal:any_any is the only overload.
Source

fn is_base_name_unique( &self, kind: ExtensionKind, anchor: u32, ) -> Result<bool, MissingReference>

Source

fn find_by_base_name( &self, kind: ExtensionKind, base: &str, ) -> Result<u32, MissingReference>

Trait Implementations§

Source§

impl Clone for SimpleExtensions

Source§

fn clone(&self) -> SimpleExtensions

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SimpleExtensions

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SimpleExtensions

Source§

fn default() -> SimpleExtensions

Returns the “default value” for a type. Read more
Source§

impl PartialEq for SimpleExtensions

Source§

fn eq(&self, other: &SimpleExtensions) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for SimpleExtensions

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.