Skip to main content

Module sqlfunc

Module sqlfunc 

Source

StructsΒ§

Modifiers πŸ”’
Modifiers passed as key-value pairs to the #[sqlfunc] macro.

EnumsΒ§

Arity πŸ”’
Arity classification for a function annotated with #[sqlfunc].
GenericUsage πŸ”’
How a generic type parameter T appears in a type.
SqlName πŸ”’
A name for the SQL function. It can be either a literal or a macro, thus we can’t use String or syn::Expr directly.

FunctionsΒ§

arg_type πŸ”’
Determines the argument type of the nth argument of the function.
binary_func πŸ”’
Produce a EagerBinaryFunc implementation.
camel_case πŸ”’
classify_generic_usage πŸ”’
Classifies how a generic type parameter appears in a type.
container_idents_match πŸ”’
Compare two container type paths by their ident segments (ignoring lifetimes and generic arguments). Two containers are β€œsame” if their path idents match.
derive_output_type_for_generic πŸ”’
Derives an output_type_expr for a single generic parameter.
derive_output_type_for_generics πŸ”’
Derives an output_type_expr TokenStream from the structural relationship between input types and the output type, based on where generic parameters appear.
determine_arity πŸ”’
Determines the arity of a function annotated with #[sqlfunc].
element_type_expr πŸ”’
Generates a token stream that extracts the T-level SQL type from an input access expression, based on how T is used in that input.
elide_lifetimes πŸ”’
Replaces all lifetime parameters in a syn::TypePath with '_.
elide_lifetimes_in_type πŸ”’
Recursively replaces all lifetime parameters in a syn::Type with '_.
erase_all_generic_params πŸ”’
Erases all generic type parameters from a type, replacing each with Datum<'a>.
erase_generic_param πŸ”’
Replaces occurrences of a generic type parameter with Datum<'a> in a type.
find_generic_type_params πŸ”’
Extracts generic type parameters from a function signature. Returns an empty Vec if there are no type parameters.
generate_test πŸ”’
is_nullable_type πŸ”’
Convert an identifier to a camel-cased identifier. Checks if a parameter type accepts NULL.
is_option_wrapped πŸ”’
Returns whether the outermost wrapper of a type is Option.
is_variadic_arg πŸ”’
Checks whether a parameter’s type is Variadic<...> or OptionalArg<...>, which indicates the function should be treated as variadic regardless of parameter count.
is_variadic_type πŸ”’
Checks if a type is Variadic<T>.
last_is_arena πŸ”’
Checks if the last parameter of the function is a &RowArena.
non_nullable_position_checks πŸ”’
Generates per-position nullability checks for non-nullable parameters.
output_type πŸ”’
Determine the output type for a function. Returns an error if the function does not return a value.
patch_lifetimes πŸ”’
Recursively patches lifetimes in a type, adding 'a to references without a lifetime and recursing into generic arguments and tuples.
sqlfunc
Implementation for the #[sqlfunc] macro. The first parameter is the attribute arguments, the second is the function body. The third parameter indicates whether to include the test function in the output.
type_contains_ident πŸ”’
Returns whether a type syntactically contains an identifier.
unary_func πŸ”’
Produce a EagerUnaryFunc implementation.
variadic_element_is_nullable πŸ”’
For a Variadic<T> type, checks if T accepts NULL.
variadic_func πŸ”’
Produce an EagerVariadicFunc implementation.