AnalyticsProcessingUpdate.fromReader constructor

AnalyticsProcessingUpdate.fromReader(
  1. TeleportObjectReader reader
)

Implementation

factory AnalyticsProcessingUpdate.fromReader(TeleportObjectReader reader) {
    final instance = AnalyticsProcessingUpdate();
    TeleportField? field;
    while ((field = reader.next()) != null) {
        if (field!.isNull) continue;
        switch (field.fieldId) {
            case fieldIdProcessingId: {
                instance.processingId = field.asString();
                break;
            }
            case fieldIdTotalRuns: {
                instance.totalRuns = field.asInt32();
                break;
            }
            case fieldIdTotalItems: {
                instance.totalItems = field.asInt32();
                break;
            }
            case fieldIdTotalPages: {
                instance.totalPages = field.asInt32();
                break;
            }
            case fieldIdTotalRetries: {
                instance.totalRetries = field.asInt32();
                break;
            }
            case fieldIdTotalFailures: {
                instance.totalFailures = field.asInt32();
                break;
            }
            case fieldIdStartedAt: {
                instance.startedAt = field.asString();
                break;
            }
            case fieldIdElapsedSeconds: {
                instance.elapsedSeconds = field.asFloat32();
                break;
            }
            case fieldIdUsages: {
                final dr = field.asDictionary();
                final map = <String, double>{};
                TeleportDictEntry? en;
                while ((en = dr.next()) != null) {
                    final entry = en!;
                    map[entry.keyAsString()] = entry.valueAsField().asFloat64();
                }
                instance.usages = map;
                break;
            }
            case fieldIdRunsRemaining: {
                instance.runsRemaining = field.asInt32();
                break;
            }
            case fieldIdItemsRemaining: {
                instance.itemsRemaining = field.asInt32();
                break;
            }
            case fieldIdEstimatedTimeLeftSecondsRuns: {
                instance.estimatedTimeLeftSecondsRuns = field.asFloat32();
                break;
            }
            case fieldIdEstimatedTimeLeftSecondsItems: {
                instance.estimatedTimeLeftSecondsItems = field.asFloat32();
                break;
            }
        }
    }
    return instance;
}