Set examples

These examples add event IDs, prevent a duplicate, check membership, and remove a processed event.

Python

import json

def print_label_value(label, value):
    print(f"\033[1;36m{label}:\033[0m {value}")

def json_value(value):
    return json.dumps(sorted(value), separators=(",", ":"))

processed_events = set()

def add_event(event_id):
    if event_id in processed_events:
        return "duplicate"
    processed_events.add(event_id)
    return "added"

print_label_value("1. Add match-8", add_event("match-8"))
print_label_value("2. Add match-8 again", add_event("match-8"))
print_label_value("3. Add match-9", add_event("match-9"))
print_label_value(
    "4. Contains match-8",
    "yes" if "match-8" in processed_events else "no",
)

processed_events.discard("match-8")
print_label_value("5. Remove match-8", "removed")
print_label_value(
    "6. Contains match-8",
    "yes" if "match-8" in processed_events else "no",
)
print_label_value("7. Remaining values", json_value(processed_events))

JavaScript

function printLabelValue(label, value) {
  console.log(`\x1b[1;36m${label}:\x1b[0m`, value);
}

const processedEvents = new Set();

function addEvent(eventId) {
  if (processedEvents.has(eventId)) {
    return "duplicate";
  }
  processedEvents.add(eventId);
  return "added";
}

printLabelValue("1. Add match-8", addEvent("match-8"));
printLabelValue("2. Add match-8 again", addEvent("match-8"));
printLabelValue("3. Add match-9", addEvent("match-9"));
printLabelValue(
  "4. Contains match-8",
  processedEvents.has("match-8") ? "yes" : "no",
);

processedEvents.delete("match-8");
printLabelValue("5. Remove match-8", "removed");
printLabelValue(
  "6. Contains match-8",
  processedEvents.has("match-8") ? "yes" : "no",
);
printLabelValue(
  "7. Remaining values",
  JSON.stringify(Array.from(processedEvents).sort()),
);

Expected output

1. Add match-8: added
2. Add match-8 again: duplicate
3. Add match-9: added
4. Contains match-8: yes
5. Remove match-8: removed
6. Contains match-8: no
7. Remaining values: ["match-9"]