Workflow and Source Panels
Task Result Slots
Store task-like results in named scalar slots before summarizing them.
Task Result Slots
task_result_slots.swift
Replay: real traced execution (multi-file project)
let readCount = 12
let writeCount = readCount + 3
let results = [
"read": readCount,
"write": writeCount
]
let read = results["read"] ?? 0
let write = results["write"] ?? 0
let total = read + write
print("read=\(read)")
print("write=\(write)")
print("total=\(total)")
let readCount = 8
let writeCount = readCount + 3
let results = [
"read": readCount,
"write": writeCount
]
let read = results["read"] ?? 0
let write = results["write"] ?? 0
let total = read + write
print("read=\(read)")
print("write=\(write)")
print("total=\(total)")
let readCount = 15
let writeCount = readCount + 3
let results = [
"read": readCount,
"write": writeCount
]
let read = results["read"] ?? 0
let write = results["write"] ?? 0
let total = read + write
print("read=\(read)")
print("write=\(write)")
print("total=\(total)")
readCount ← 12, writeCount ← 15, results ← ["read": 12, "write": 15]
1let readCount→ 12 = 12 //@readCount=8, 152let writeCount→ 15 = readCount12 + 33let results→ ["read": 12, "write": 15] = [4 "read": readCount12,5 "write": writeCount156]78let read→ 12 = results["read"]Optional(12) ?? 09let write→ 15 = results["write"]Optional(15) ?? 010let total→ 27 = read12 + write151112print("read=\(read12)")13print("write=\(write15)")14print("total=\(total27)")outputread=12 write=15 total=27
readCount ← 8, writeCount ← 11, results ← ["read": 8, "write": 11]
1let readCount→ 8 = 82let writeCount→ 11 = readCount8 + 33let results→ ["read": 8, "write": 11] = [4 "read": readCount8,5 "write": writeCount116]78let read→ 8 = results["read"]Optional(8) ?? 09let write→ 11 = results["write"]Optional(11) ?? 010let total→ 19 = read8 + write111112print("read=\(read8)")13print("write=\(write11)")14print("total=\(total19)")outputread=8 write=11 total=19
readCount ← 15, writeCount ← 18, results ← ["read": 15, "write": 18]
1let readCount→ 15 = 152let writeCount→ 18 = readCount15 + 33let results→ ["read": 15, "write": 18] = [4 "read": readCount15,5 "write": writeCount186]78let read→ 15 = results["read"]Optional(15) ?? 09let write→ 18 = results["write"]Optional(18) ?? 010let total→ 33 = read15 + write181112print("read=\(read15)")13print("write=\(write18)")14print("total=\(total33)")outputread=15 write=18 total=33
result slot
Named result slots make replay easier to follow than a hidden asynchronous callback table.