Table of Contents

Namespace Rinku.Querying.Parameters

Classes

AccessorEmitter

Shared IL helpers for parameter access.

AccessorEmitterBase

Provides the common conditional flow for a direct-member accessor emitter.

AccessorEmitterHandler

The base for an attribute that changes how a parameter object's member is read, its presence rule, its value, or both. Attributes like ForBoolCondAttribute and NotNullOrWhitespaceAttribute subclass it to define a custom rule of your own.

AccessorUsageMarker

Stores the shared scratch usage mask used by value-array accessors that do not need a result mask.

DirectAccessor

The direct command-binding delegate for one source type and one query mapper.

DirectAccessor<T>

The direct command-binding delegate for a value type.

ForBoolCondAttribute

On a parameter object, marks a bool member as a condition toggle rather than a bound value.

MethodConditionEmitter

Uses a static boolean method over the member value as the usability condition.

MultiVariableHandler

The handler behind the _X marker. It spreads a collection into numbered parameters, so @Items becomes @Items_1, @Items_2, ... @Items_N, one per element, ready for an IN clause.

NestedParametersAttribute

Flattens a member's parameter surface into its containing object. The nested object's members behave as though they were declared on the containing parameter object.

NotDefaultAttribute

Treats a member as present only when it is not its type's default value.

NotNullOrWhitespaceAttribute

Treats a string member as present only when it is not null or whitespace.

ParameterAccessorGenerator

Creates cached parameter accessors.

ParameterAccessorGenerator.StackAccessor

Reuses the normal parameter-shape plan and emits raw typed values instead of binding them.

ParameterAccessorGenerator.StackAccessorEmission

Per-IL-generator state for stack emission. Usage must be emitted before value for nested and dictionary sources.

ParameterAliasAttribute

Adds another parameter/condition name for a member.

ParameterConflictAttribute

Configures equal-priority parameter-source conflicts for a parameter object type.

ParameterIgnoreAttribute

Prevents a public member from participating in parameter binding.

ParameterNameAttribute

Uses a different parameter/condition name for a member.

PathAccessorEmitterBase

Provides the common conditional flow for a member rule that supports both direct and flattened/nested parameter members. Prefer this base for new custom emitters.

SpecialHandler

A marker that both binds database parameters and writes SQL, for a variable that expands into several parameters, such as a list spread into an IN clause. Subclass it and register a letter in SpecialHandlerGetter to add your own.

TypeAccessorEmitterBase

Provides the common conditional flow for an emitter attached to a whole type.

UseDbNullAttribute

On a parameter member, or every member of a parameter type, keeps a null value supplied and sends it to the database as Value. A member attribute takes priority over this type-level rule.

UseWithAccessor

The value-array delegate used by UseWith for one source type and query mapper.

UseWithAccessor<T>

The value-array delegate used by UseWith for a value type.

UsesBoolConds

On a parameter object type, names conditions that are always on whenever an instance is used, without a member for each. Handy for a type that should always switch on the same parts of a query.

Structs

ParameterMemberAccess

Describes a parameter member as seen from the root parameter object. A direct member has one path step. A member reached through NestedParametersAttribute has several.

UseWithEmissionContext

Provides the generated argument and mask state needed by a UseWith emitter.

Interfaces

IAccessorEmitter

Emits custom access rules for individual parameter members.

IPathAccessorEmitter

Optional path-aware form of IAccessorEmitter. Implement this when the same custom parameter rule should also work on members reached through NestedParametersAttribute.

ITypeAccessorEmitter

Emits one parameter key whose rule belongs to the whole parameter type.

Enums

ParameterConflictBehavior

Controls what happens when two equally valid sources provide the same parameter.

Delegates

DirectAccessorDelegate

Binds one parameter object directly to a database command.

DirectAccessorDelegate<T>

Binds one value-type parameter object directly to a database command without boxing it.

UseWithAccessorDelegate

Copies one parameter object into a builder's value array.

UseWithAccessorDelegate<T>

Copies one value-type parameter object into a builder's value array without boxing it.