A small list of record-like maps can model a queue snapshot without any host service. The selector changes which ticket status the report highlights.

Program

Play the program to choose the ticket status and inspect the queue snapshot.

wantedStatus
queue_snapshot_model.dart
Replay: real traced execution (multi-file project)
void main() {
  var wantedStatus = 'open';
  var tickets = [
    {'status': 'open', 'severity': 'high'},
    {'status': 'waiting', 'severity': 'normal'},
    {'status': 'open', 'severity': 'normal'},
  ];
  var visible = tickets.where((ticket) => ticket['status'] == wantedStatus).length;
  var high = tickets.where((ticket) => ticket['severity'] == 'high').length;
  var line = '$wantedStatus tickets=$visible high=$high';
  print(line);
}
void main() {
  var wantedStatus = 'waiting';
  var tickets = [
    {'status': 'open', 'severity': 'high'},
    {'status': 'waiting', 'severity': 'normal'},
    {'status': 'open', 'severity': 'normal'},
  ];
  var visible = tickets.where((ticket) => ticket['status'] == wantedStatus).length;
  var high = tickets.where((ticket) => ticket['severity'] == 'high').length;
  var line = '$wantedStatus tickets=$visible high=$high';
  print(line);
}
  1. wantedStatus ← open

    1void main() {2  var wantedStatus = 'open';3  var tickets = [
    values this stepopenwantedStatus
  2. tickets ← 3 records

    2var wantedStatus = 'open';3var tickets = [4  {'status': 'open', 'severity': 'high'},
    values this step3 recordstickets
  3. visible ← 2

    7];8var visible = tickets.where((ticket) => ticket['status'] == wantedStatus).length;9var high = tickets.where((ticket) => ticket['severity'] == 'high').length;
    values this step2visibleopenwantedStatus3 recordstickets
  4. high ← 1

    8var visible = tickets.where((ticket) => ticket['status'] == wantedStatus).length;9var high = tickets.where((ticket) => ticket['severity'] == 'high').length;10var line = '$wantedStatus tickets=$visible high=$high';
    values this step1high3 recordstickets
  5. line ← open tickets=2 high=1

    9var high = tickets.where((ticket) => ticket['severity'] == 'high').length;10var line = '$wantedStatus tickets=$visible high=$high';11print(line);
    values this stepopen tickets=2 high=1lineopenwantedStatus2visible1high
  6. print(line);

    10  var line = '$wantedStatus tickets=$visible high=$high';11  print(line);12}
    outputopen tickets=2 high=1
    values this stepopen tickets=2 high=1line
  1. wantedStatus ← waiting

    1void main() {2  var wantedStatus = 'waiting';3  var tickets = [
    values this stepwaitingwantedStatus
  2. tickets ← 3 records

    2var wantedStatus = 'waiting';3var tickets = [4  {'status': 'open', 'severity': 'high'},
    values this step3 recordstickets
  3. visible ← 1

    7];8var visible = tickets.where((ticket) => ticket['status'] == wantedStatus).length;9var high = tickets.where((ticket) => ticket['severity'] == 'high').length;
    values this step1visiblewaitingwantedStatus3 recordstickets
  4. high ← 1

    8var visible = tickets.where((ticket) => ticket['status'] == wantedStatus).length;9var high = tickets.where((ticket) => ticket['severity'] == 'high').length;10var line = '$wantedStatus tickets=$visible high=$high';
    values this step1high3 recordstickets
  5. line ← waiting tickets=1 high=1

    9var high = tickets.where((ticket) => ticket['severity'] == 'high').length;10var line = '$wantedStatus tickets=$visible high=$high';11print(line);
    values this stepwaiting tickets=1 high=1linewaitingwantedStatus1visible1high
  6. print(line);

    10  var line = '$wantedStatus tickets=$visible high=$high';11  print(line);12}
    outputwaiting tickets=1 high=1
    values this stepwaiting tickets=1 high=1line
record-like maps The ticket maps carry only the fields needed by the snapshot.
where `where` keeps rows whose status matches the selected value.
summary line The output reports the selected bucket and one independent severity count.