Workflow and Source Panels
Dispatcher Branch Panel
Use a Swift switch to route one command into a scalar result.
Dispatcher Branch Panel
dispatcher_branch_panel.swift
Replay: real traced execution (multi-file project)
let mode = "status"
let access = "ok"
let message: String
switch mode {
case "status":
message = "handled:status"
case "refresh":
message = "handled:refresh"
case "delete":
message = access == "ok" ? "handled:delete" : "blocked"
default:
message = "unknown"
}
print("mode=\(mode)")
print("access=\(access)")
print(message)
let mode = "refresh"
let access = "ok"
let message: String
switch mode {
case "status":
message = "handled:status"
case "refresh":
message = "handled:refresh"
case "delete":
message = access == "ok" ? "handled:delete" : "blocked"
default:
message = "unknown"
}
print("mode=\(mode)")
print("access=\(access)")
print(message)
let mode = "delete"
let access = "ok"
let message: String
switch mode {
case "status":
message = "handled:status"
case "refresh":
message = "handled:refresh"
case "delete":
message = access == "ok" ? "handled:delete" : "blocked"
default:
message = "unknown"
}
print("mode=\(mode)")
print("access=\(access)")
print(message)
mode ← status, access ← ok
1let mode→ status = "status" //@mode="refresh", "delete"2let access→ ok = "ok"3let message: Stringswitch mode
5switch modestatus {6case "status":7 message = "handled:status"message ← handled:status
5switch mode {6case "status":7 message→ handled:status = "handled:status"8case "refresh":print("mode=\(mode)")
16print("mode=\(modestatus)")17print("access=\(accessok)")18print(messagehandled:status)outputmode=status access=ok handled:status
mode ← refresh, access ← ok
1let mode→ refresh = "refresh"2let access→ ok = "ok"3let message: Stringswitch mode
5switch moderefresh {6case "status":7 message = "handled:status"message ← handled:refresh
7 message = "handled:status"8case "refresh":9 message→ handled:refresh = "handled:refresh"10case "delete":print("mode=\(mode)")
16print("mode=\(moderefresh)")17print("access=\(accessok)")18print(messagehandled:refresh)outputmode=refresh access=ok handled:refresh
mode ← delete, access ← ok
1let mode→ delete = "delete"2let access→ ok = "ok"3let message: Stringswitch mode
5switch modedelete {6case "status":7 message = "handled:status"message ← handled:delete
9 message = "handled:refresh"10case "delete":11 message→ handled:delete = accessok == "ok" ? "handled:delete" : "blocked"12default:print("mode=\(mode)")
16print("mode=\(modedelete)")17print("access=\(accessok)")18print(messagehandled:delete)outputmode=delete access=ok handled:delete
dispatcher
A dispatcher turns a command value into one branch of work without needing a dynamic function table.