UIQS.fromReader constructor

UIQS.fromReader(
  1. TeleportObjectReader reader
)

Implementation

factory UIQS.fromReader(TeleportObjectReader reader) {
    final instance = UIQS();
    TeleportField? field;
    while ((field = reader.next()) != null) {
        if (field!.isNull) continue;
        switch (field.fieldId) {
            case fieldIdElementId: {
                instance.elementId = field.asInt32();
                break;
            }
            case fieldIdLabels: {
                final ar = field.asArray();
                final list = <String>[];
                TeleportArrayElement? el;
                while ((el = ar.next()) != null) {
                    list.add(el!.asString());
                }
                instance.labels = list;
                break;
            }
            case fieldIdStyleId: {
                instance.styleId = field.asString();
                break;
            }
            case fieldIdName: {
                instance.name = field.asString();
                break;
            }
            case fieldIdEventActionId: {
                instance.eventActionId = field.asString();
                break;
            }
            case fieldIdArgumentsJson: {
                final dr = field.asDictionary();
                final map = <String, String>{};
                TeleportDictEntry? en;
                while ((en = dr.next()) != null) {
                    final entry = en!;
                    map[entry.keyAsString()] = entry.valueAsField().asString();
                }
                instance.argumentsJson = map;
                break;
            }
        }
    }
    return instance;
}