Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AlignOffset ¶
AlignOffset returns the smallest y >= x such that y % a == 0.
Types ¶
type ExecutionPlan ¶
type ExecutionPlan interface { FnDefinition() wasm.FunctionDefinition FnMetadata() *metadata.Function ParamHandlers() []TypeHandler ResultHandlers() []TypeHandler UseResultIndirection() bool HasDefaultParameters() bool InvokeFunction(ctx context.Context, wa WasmAdapter, parameters map[string]any) (result any, err error) }
func NewExecutionPlan ¶
func NewExecutionPlan(fnDef wasm.FunctionDefinition, fnMeta *metadata.Function, paramHandlers, resultHandlers []TypeHandler, indirectResultSize uint32) ExecutionPlan
type Language ¶
type Language interface { Name() string TypeInfo() LanguageTypeInfo NewPlanner(md *metadata.Metadata) Planner NewWasmAdapter(mod wasm.Module) WasmAdapter }
func NewLanguage ¶
func NewLanguage(name string, typeInfo LanguageTypeInfo, plannerFactory func(*metadata.Metadata) Planner, waFactory func(wasm.Module) WasmAdapter) Language
type LanguageTypeInfo ¶
type LanguageTypeInfo interface { GetReflectedType(ctx context.Context, typ string) (reflect.Type, error) GetSizeOfType(ctx context.Context, typ string) (uint32, error) GetAlignmentOfType(ctx context.Context, typ string) (uint32, error) GetDataSizeOfType(ctx context.Context, typ string) (uint32, error) GetEncodingLengthOfType(ctx context.Context, typ string) (uint32, error) ObjectsUseMaxFieldAlignment() bool GetListSubtype(typ string) string GetMapSubtypes(typ string) (string, string) GetNameForType(typ string) string GetUnderlyingType(typ string) string IsBooleanType(typ string) bool IsByteSequenceType(typ string) bool IsFloatType(typ string) bool IsIntegerType(typ string) bool IsListType(typ string) bool IsMapType(typ string) bool IsObjectType(typ string) bool IsNullableType(typ string) bool IsPointerType(typ string) bool IsPrimitiveType(typ string) bool IsSignedIntegerType(typ string) bool IsStringType(typ string) bool IsTimestampType(typ string) bool }
type Planner ¶
type Planner interface { GetPlan(ctx context.Context, fnMeta *metadata.Function, fnDef wasm.FunctionDefinition) (ExecutionPlan, error) GetHandler(ctx context.Context, typ string) (TypeHandler, error) AllHandlers() map[string]TypeHandler }
type TypeHandler ¶
type TypeHandler interface { TypeInfo() TypeInfo Read(ctx context.Context, wa WasmAdapter, offset uint32) (any, error) Write(ctx context.Context, wa WasmAdapter, offset uint32, obj any) (utils.Cleaner, error) Decode(ctx context.Context, wa WasmAdapter, vals []uint64) (any, error) Encode(ctx context.Context, wa WasmAdapter, obj any) ([]uint64, utils.Cleaner, error) }
type TypeInfo ¶
type TypeInfo interface { Name() string ReflectedType() reflect.Type ZeroValue() any Size() uint32 Alignment() uint32 DataSize() uint32 EncodingLength() uint32 UnderlyingType() TypeInfo ListElementType() TypeInfo MapKeyType() TypeInfo MapValueType() TypeInfo ObjectFieldTypes() []TypeInfo ObjectFieldOffsets() []uint32 IsBoolean() bool IsByteSequence() bool IsFloat() bool IsInteger() bool IsList() bool IsMap() bool IsNullable() bool IsObject() bool IsPointer() bool IsPrimitive() bool IsSignedInteger() bool IsString() bool IsTimestamp() bool }
func GetTypeInfo ¶
type WasmAdapter ¶
type WasmAdapter interface { TypeInfo() LanguageTypeInfo Memory() wasm.Memory AllocateMemory(ctx context.Context, size uint32) (uint32, utils.Cleaner, error) GetFunction(name string) wasm.Function PreInvoke(ctx context.Context, plan ExecutionPlan) error }
func GetWasmAdapter ¶
func GetWasmAdapter(ctx context.Context) (WasmAdapter, error)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.