Table of Contents

Class DefaultOpaImportsAbi

Namespace
OpaDotNet.Wasm
Assembly
OpaDotNet.Wasm.dll

Default built-in functions implementation.

public class DefaultOpaImportsAbi : IOpaImportsAbi
Inheritance
DefaultOpaImportsAbi
Implements
Inherited Members

Constructors

DefaultOpaImportsAbi()

public DefaultOpaImportsAbi()

Methods

Abort(string)

Called if an internal error occurs.

[ExcludeFromCodeCoverage]
[DoesNotReturn]
public virtual void Abort(string message)

Parameters

message string

Error message.

CacheGetOrAddValue<T>(string, Func<T>)

Adds a key/value pair to the cache if the key does not already exist. Returns the new value, or the existing value if the key already exists.

protected T CacheGetOrAddValue<T>(string key, Func<T> valueFactory) where T : notnull

Parameters

key string

Cached value key

valueFactory Func<T>

Value producer if key is not present in cache

Returns

T

Type Parameters

T

Type of the object to store

Func(BuiltinContext)

Called to dispatch the built-in function.

public virtual object? Func(BuiltinContext context)

Parameters

context BuiltinContext

Call context.

Returns

object

JSON serializable function result.

Func(BuiltinContext, BuiltinArg)

Called to dispatch the built-in function.

public virtual object? Func(BuiltinContext context, BuiltinArg arg1)

Parameters

context BuiltinContext

Call context.

arg1 BuiltinArg

Function argument.

Returns

object

JSON serializable function result.

Func(BuiltinContext, BuiltinArg, BuiltinArg)

Called to dispatch the built-in function.

public virtual object? Func(BuiltinContext context, BuiltinArg arg1, BuiltinArg arg2)

Parameters

context BuiltinContext

Call context.

arg1 BuiltinArg

Function argument.

arg2 BuiltinArg

Function argument.

Returns

object

JSON serializable function result.

Func(BuiltinContext, BuiltinArg, BuiltinArg, BuiltinArg)

Called to dispatch the built-in function.

public virtual object? Func(BuiltinContext context, BuiltinArg arg1, BuiltinArg arg2, BuiltinArg arg3)

Parameters

context BuiltinContext

Call context.

arg1 BuiltinArg

Function argument.

arg2 BuiltinArg

Function argument.

arg3 BuiltinArg

Function argument.

Returns

object

JSON serializable function result.

Func(BuiltinContext, BuiltinArg, BuiltinArg, BuiltinArg, BuiltinArg)

Called to dispatch the built-in function.

public virtual object? Func(BuiltinContext context, BuiltinArg arg1, BuiltinArg arg2, BuiltinArg arg3, BuiltinArg arg4)

Parameters

context BuiltinContext

Call context.

arg1 BuiltinArg

Function argument.

arg2 BuiltinArg

Function argument.

arg3 BuiltinArg

Function argument.

arg4 BuiltinArg

Function argument.

Returns

object

JSON serializable function result.

NewGuid()

When overriden allows replacing GUID generator.

[ExcludeFromCodeCoverage]
protected virtual Guid NewGuid()

Returns

Guid

Now()

When overriden allows replacing default logic for retrieving the current UTC date and time.

[ExcludeFromCodeCoverage]
protected virtual DateTimeOffset Now()

Returns

DateTimeOffset

OnError(BuiltinContext, Exception)

Called if built-in function throws error.

[ExcludeFromCodeCoverage]
protected virtual bool OnError(BuiltinContext context, Exception ex)

Parameters

context BuiltinContext

Built-in function call context

ex Exception

Exception thrown

Returns

bool

true if exception should be rethrown; false suppress exception and return default result

Print(IEnumerable<string>)

Called to emit a message from print statement.

public virtual void Print(IEnumerable<string> args)

Parameters

args IEnumerable<string>

Random()

When overriden allows replacing a pseudo-random number generator.

[ExcludeFromCodeCoverage]
protected virtual Random Random()

Returns

Random

A pseudo-random number generator.

Reset()

Resets built-ins so it can be used for subsequent evaluations (clears all caches).

public virtual void Reset()

Trace(string)

Default implementation of the trace built-in function.

[ExcludeFromCodeCoverage]
protected virtual bool Trace(string message)

Parameters

message string

Message to write.

Returns

bool