RuntimeHint constructor
const
RuntimeHint({
- required Type type,
- NewInstanceCreator? newInstance,
- InvokeMethodCreator? invokeMethod,
- GetValueCreator? getValue,
- SetValueCreator? setValue,
A hint that defines how to interact with a specific type Object
through reflection-like operations.
RuntimeHint
is a metadata container used by JetLeaf's reflection system, especially
in environments without dart:mirrors
, such as ahead-of-time (AOT) compilation.
It provides function references to:
- Create new instances of
Object
- Invoke methods on
Object
- Read fields on
Object
- Write fields on
Object
These operations are usually supplied by generated code or runtime hooks.
Example
final descriptor = RuntimeHint(
type: MyClass,
newInstance: (name, [args = const [], namedArgs = const {}]) => MyClass(),
invokeMethod: (instance, method, {args = const [], namedArgs = const {}}) {
if (method == 'sayHello') return instance.sayHello();
throw UnimplementedError();
},
getValue: (instance, name) {
if (name == 'value') return instance.value;
throw UnimplementedError();
},
setValue: (instance, name, value) {
if (name == 'value') instance.value = value;
},
);
Implementation
const RuntimeHint({required this.type, this.newInstance, this.invokeMethod, this.getValue, this.setValue});