ActionFunctionRegister.fromReader constructor

ActionFunctionRegister.fromReader(
  1. TeleportObjectReader reader
)

Implementation

factory ActionFunctionRegister.fromReader(TeleportObjectReader reader) {
    final instance = ActionFunctionRegister();
    TeleportField? field;
    while ((field = reader.next()) != null) {
        if (field!.isNull) continue;
        switch (field.fieldId) {
            case fieldIdFunctionId: {
                instance.functionId = field.asGuid();
                break;
            }
            case fieldIdFunctionName: {
                instance.functionName = field.asString();
                break;
            }
            case fieldIdParameters: {
                final ar = field.asArray();
                final list = <FunctionRegisterParameter>[];
                TeleportArrayElement? el;
                while ((el = ar.next()) != null) {
                    list.add(FunctionRegisterParameter.fromReader(el!.asObject()));
                }
                instance.parameters = list;
                break;
            }
            case fieldIdResultTypeName: {
                instance.resultTypeName = field.asString();
                break;
            }
            case fieldIdIsEnumerable: {
                instance.isEnumerable = field.asBool();
                break;
            }
            case fieldIdEnumerableItemTypeName: {
                instance.enumerableItemTypeName = field.asString();
                break;
            }
            case fieldIdIsCancellable: {
                instance.isCancellable = field.asBool();
                break;
            }
            case fieldIdDescription: {
                instance.description = field.asString();
                break;
            }
            case fieldIdLlmInlineResult: {
                instance.llmInlineResult = field.asBool();
                break;
            }
            case fieldIdLlmCallOnlyOnce: {
                instance.llmCallOnlyOnce = field.asBool();
                break;
            }
            case fieldIdRequiresInstance: {
                instance.requiresInstance = field.asBool();
                break;
            }
            case fieldIdVersions: {
                final ar = field.asArray();
                final list = <String>[];
                TeleportArrayElement? el;
                while ((el = ar.next()) != null) {
                    list.add(el!.asString());
                }
                instance.versions = list;
                break;
            }
        }
    }
    return instance;
}