pub struct MatchedRoutineSignature {Show 16 fields
pub declared_identity: Vec<String>,
pub argument_signature: Vec<String>,
pub default_error: Option<RoutineSignatureMatchError>,
pub argument_targets: Vec<String>,
pub argument_sources: Vec<Option<String>>,
pub argument_positions: Vec<usize>,
pub coercion_targets: Vec<RoutineCoercionTarget>,
pub parameter_types: Vec<String>,
pub parameter_type_values: Vec<Option<ColumnType>>,
pub defaulted_parameters: Vec<usize>,
pub variadic_mode: RoutineVariadicMode,
pub variadic_plan: RoutineVariadicPlan,
pub substitutions: RoutineTypeSubstitutions,
pub raw_exact_matches: usize,
pub exact_matches: usize,
pub preferred_matches: usize,
}Expand description
A fully matched call signature. Declared identity is kept separate from expansion-aware call binding.
Fields§
§declared_identity: Vec<String>§argument_signature: Vec<String>Declared types of supplied arguments, used for ranking before defaults are inserted.
default_error: Option<RoutineSignatureMatchError>Candidate-only failure reported after overload selection; never publish its coercion plan.
argument_targets: Vec<String>Effective target signature, one entry per supplied argument.
argument_sources: Vec<Option<String>>§argument_positions: Vec<usize>Supplied-argument to declared-parameter mapping; an expanded variadic position may occur repeatedly.
coercion_targets: Vec<RoutineCoercionTarget>§parameter_types: Vec<String>Concrete parameter types aligned with the declared parameter vector.
parameter_type_values: Vec<Option<ColumnType>>§defaulted_parameters: Vec<usize>§variadic_mode: RoutineVariadicMode§variadic_plan: RoutineVariadicPlan§substitutions: RoutineTypeSubstitutions§raw_exact_matches: usize§exact_matches: usize§preferred_matches: usizeImplementations§
Source§impl MatchedRoutineSignature
impl MatchedRoutineSignature
Sourcepub fn substitute_type(&self, declared_type_name: &str) -> Option<ColumnType>
pub fn substitute_type(&self, declared_type_name: &str) -> Option<ColumnType>
Resolve a declared return or output type through this call’s polymorphic substitutions.
Sourcepub fn substitute_type_name(&self, declared_type_name: &str) -> Option<String>
pub fn substitute_type_name(&self, declared_type_name: &str) -> Option<String>
Resolve a declared return or output type to its canonical binding name even when no ColumnType carrier exists for a named catalog type.
pub fn effective_argument_signature(&self) -> &[String]
Sourcepub fn invocation_binding(
&self,
declared_return_type: Option<&str>,
) -> RoutineInvocationBinding
pub fn invocation_binding( &self, declared_return_type: Option<&str>, ) -> RoutineInvocationBinding
Materialize the stable AST binding contract consumed by scalar, FROM, CALL, and PL/pgSQL execution paths.
Trait Implementations§
Source§impl Clone for MatchedRoutineSignature
impl Clone for MatchedRoutineSignature
Source§impl Debug for MatchedRoutineSignature
impl Debug for MatchedRoutineSignature
impl Eq for MatchedRoutineSignature
Source§impl PartialEq for MatchedRoutineSignature
impl PartialEq for MatchedRoutineSignature
impl StructuralPartialEq for MatchedRoutineSignature
Auto Trait Implementations§
impl Freeze for MatchedRoutineSignature
impl RefUnwindSafe for MatchedRoutineSignature
impl Send for MatchedRoutineSignature
impl Sync for MatchedRoutineSignature
impl Unpin for MatchedRoutineSignature
impl UnsafeUnpin for MatchedRoutineSignature
impl UnwindSafe for MatchedRoutineSignature
Blanket Implementations§
Source§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,
impl<T> ErasedDestructor for Twhere
T: 'static,
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