pub enum FunctionParam {
In(FunctionParamIn),
Out(FunctionParamOut),
InOut(FunctionParamInOut),
Variadic(FunctionParamVariadic),
Table(FunctionParamTable),
}Expand description
function parameter type
Variants§
In(FunctionParamIn)
Input parameter
Out(FunctionParamOut)
output parameter
InOut(FunctionParamInOut)
input output parameter
Variadic(FunctionParamVariadic)
variadic parameter
Table(FunctionParamTable)
table parameter
Implementations§
Source§impl FunctionParam
impl FunctionParam
Sourcepub fn analyze<TParseContext>(
context: TParseContext,
param: FunctionParameter,
tokens: &IVec<ScanToken>,
) -> Result<(FunctionParam, TParseContext), AnalysisError>where
TParseContext: ParseContext,
pub fn analyze<TParseContext>(
context: TParseContext,
param: FunctionParameter,
tokens: &IVec<ScanToken>,
) -> Result<(FunctionParam, TParseContext), AnalysisError>where
TParseContext: ParseContext,
analyze syntax node
§Errors
Returns AnalysisError when the function parameter mode or type is missing or invalid.
Source§impl FunctionParam
impl FunctionParam
Sourcepub fn analyze_as_column_definition(
param: &FunctionParameter,
) -> Result<ColumnDefinition, AnalysisError>
pub fn analyze_as_column_definition( param: &FunctionParameter, ) -> Result<ColumnDefinition, AnalysisError>
analyze crate::syn::FunctionParameter as column definition
§Errors
Returns AnalysisError when the parameter is missing its type or uses an invalid identifier.
Sourcepub fn is_output_param(param: &FunctionParameter) -> Result<bool, AnalysisError>
pub fn is_output_param(param: &FunctionParameter) -> Result<bool, AnalysisError>
Source§impl FunctionParam
impl FunctionParam
Sourcepub fn new_input_param(
name: &Option<String>,
param_type: &Option<TypeReference>,
default_expr: &Option<SemScalarExpr>,
) -> Self
pub fn new_input_param( name: &Option<String>, param_type: &Option<TypeReference>, default_expr: &Option<SemScalarExpr>, ) -> Self
create new input parameter instance
Source§impl FunctionParam
impl FunctionParam
Sourcepub fn new_output_param(
name: &Option<String>,
param_type: &Option<TypeReference>,
) -> Self
pub fn new_output_param( name: &Option<String>, param_type: &Option<TypeReference>, ) -> Self
create new output parameter instance
Source§impl FunctionParam
impl FunctionParam
Sourcepub fn new_variadig_param(
name: &Option<String>,
param_type: &Option<TypeReference>,
) -> Self
pub fn new_variadig_param( name: &Option<String>, param_type: &Option<TypeReference>, ) -> Self
create new variadic parameter
Source§impl FunctionParam
impl FunctionParam
Sourcepub fn get_type(&self) -> Option<&TypeReference>
pub fn get_type(&self) -> Option<&TypeReference>
get a type
Sourcepub fn append_returning_column(&self, column_collection: &mut ColumnCollection)
pub fn append_returning_column(&self, column_collection: &mut ColumnCollection)
append returning column to column collecttion
Sourcepub fn collect_output_params_as_columns(
params: &Vec<FunctionParameter>,
) -> Result<Option<ColumnCollection>, AnalysisError>
pub fn collect_output_params_as_columns( params: &Vec<FunctionParameter>, ) -> Result<Option<ColumnCollection>, AnalysisError>
analyze output parameter as column collection
§Errors
Returns AnalysisError if any parameter fails to parse.
Sourcepub fn bind_arg(
&self,
arg_types: &mut ArgumentBindingCollection,
) -> Result<ParameterBindResult, TypeError>
pub fn bind_arg( &self, arg_types: &mut ArgumentBindingCollection, ) -> Result<ParameterBindResult, TypeError>
Sourcepub fn collect_simple(
&self,
context: &mut SimpleInferContext,
bind: &ParameterBindResult,
) -> Result<(), TypeError>
pub fn collect_simple( &self, context: &mut SimpleInferContext, bind: &ParameterBindResult, ) -> Result<(), TypeError>
Sourcepub fn collect_common(
&self,
context: &mut CommonInferContext,
bind: &ParameterBindResult,
) -> Result<(), TypeError>
pub fn collect_common( &self, context: &mut CommonInferContext, bind: &ParameterBindResult, ) -> Result<(), TypeError>
Sourcepub fn apply_simple_infer_result(&mut self, simple_infer_result: &TypeReference)
pub fn apply_simple_infer_result(&mut self, simple_infer_result: &TypeReference)
apply simple infer result
Sourcepub fn apply_common_infer_result(&mut self, common_infer_result: &TypeReference)
pub fn apply_common_infer_result(&mut self, common_infer_result: &TypeReference)
apply common infer result
Sourcepub fn field_definition(&self) -> Option<CompositeFieldDefinition>
pub fn field_definition(&self) -> Option<CompositeFieldDefinition>
get composite type field definition for this parameter
Sourcepub fn test_castability_one<TParseContext>(
&self,
context: &TParseContext,
source_type: &Option<TypeReference>,
) -> Result<i32, TypeError>where
TParseContext: ParseContext,
pub fn test_castability_one<TParseContext>(
&self,
context: &TParseContext,
source_type: &Option<TypeReference>,
) -> Result<i32, TypeError>where
TParseContext: ParseContext,
tests implicit cast is avaiable
§Errors
Returns [TypeError] when an implicit cast cannot be resolved.
Sourcepub fn test_castability_variadic<TParseContext>(
&self,
context: &TParseContext,
source_types: &IVec<Option<TypeReference>>,
) -> Result<i32, TypeError>where
TParseContext: ParseContext,
pub fn test_castability_variadic<TParseContext>(
&self,
context: &TParseContext,
source_types: &IVec<Option<TypeReference>>,
) -> Result<i32, TypeError>where
TParseContext: ParseContext,
tests implicit cast is avaiable for variadic arguments
§Errors
Returns [TypeError] when any argument cannot be implicitly cast.
Trait Implementations§
Source§impl Clone for FunctionParam
impl Clone for FunctionParam
Source§fn clone(&self) -> FunctionParam
fn clone(&self) -> FunctionParam
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FunctionParam
impl Debug for FunctionParam
Source§impl<'de> Deserialize<'de> for FunctionParam
impl<'de> Deserialize<'de> for FunctionParam
Source§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 Display for FunctionParam
impl Display for FunctionParam
Source§impl Hash for FunctionParam
impl Hash for FunctionParam
Source§impl PartialEq for FunctionParam
impl PartialEq for FunctionParam
Source§impl Serialize for FunctionParam
impl Serialize for FunctionParam
impl Eq for FunctionParam
impl StructuralPartialEq for FunctionParam
Auto Trait Implementations§
impl Freeze for FunctionParam
impl RefUnwindSafe for FunctionParam
impl Send for FunctionParam
impl Sync for FunctionParam
impl Unpin for FunctionParam
impl UnwindSafe for FunctionParam
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more