Skip to content

Commit ca701a7

Browse files
committed
docs(examples): adopt elegant if (var x = m[k]) idiom in map demos
Signed-off-by: Cong Wang <cwang@multikernel.io>
1 parent 62b1cc7 commit ca701a7

2 files changed

Lines changed: 10 additions & 23 deletions

File tree

examples/map_operations_demo.ks

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,13 @@ struct ArrayElement {
7070

7171
// Per-CPU access for maximum performance
7272
var cpu_id = 0
73-
var data = percpu_data[cpu_id]
74-
if (data != none) {
73+
if (var data = percpu_data[cpu_id]) {
7574
data.local_counter = data.local_counter + 1
76-
percpu_data[cpu_id] = data
7775
} else {
78-
var new_data = PerCpuData {
76+
percpu_data[cpu_id] = PerCpuData {
7977
local_counter: 1,
8078
temp_storage: [0],
8179
}
82-
percpu_data[cpu_id] = new_data
8380
}
8481

8582
return XDP_PASS
@@ -157,19 +154,16 @@ fn event_logger(ctx: *trace_event_raw_sys_enter) -> i32 {
157154
fn data_processor(file: *file, buf: *u8, count: size_t, pos: *i64) -> i32 {
158155
// Sequential access pattern - will be detected and optimized
159156
for (i in 0..32) {
160-
var element = sequential_data[i]
161-
if (element != none) {
157+
if (var element = sequential_data[i]) {
162158
if (!element.processed) {
163159
element.value = element.value * 2
164160
element.processed = true
165-
sequential_data[i] = element
166161
}
167162
} else {
168-
var new_element = ArrayElement {
163+
sequential_data[i] = ArrayElement {
169164
value: i,
170165
processed: false,
171166
}
172-
sequential_data[i] = new_element
173167
}
174168
}
175169

examples/maps_demo.ks

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -70,28 +70,21 @@ fn get_timestamp() -> u64 {
7070
var cpu_id = get_cpu_id()
7171
cpu_counters[cpu_id] = cpu_counters[cpu_id] + 1
7272

73-
// Update IP statistics - elegant truthy/falsy pattern
74-
var stats = ip_stats[src_ip]
75-
if (stats != none) {
76-
// stats is truthy - entry exists, update it
73+
// Update IP statistics - in-place mutation when entry exists
74+
if (var stats = ip_stats[src_ip]) {
7775
stats.count = stats.count + 1
7876
stats.total_bytes = stats.total_bytes + packet_len
7977
stats.last_seen = get_timestamp()
80-
ip_stats[src_ip] = stats
8178
} else {
82-
// stats is falsy - no entry, create new one
83-
var new_stats = PacketStats {
79+
ip_stats[src_ip] = PacketStats {
8480
count: 1,
8581
total_bytes: packet_len,
8682
last_seen: get_timestamp()
8783
}
88-
ip_stats[src_ip] = new_stats
8984
}
90-
91-
// Check recent connections
92-
var recent = recent_connections[src_ip]
93-
if (recent != none) {
94-
// Log repeated connection
85+
86+
// Log repeated connections
87+
if (recent_connections[src_ip] != none) {
9588
event_log[0] = 1
9689
}
9790

0 commit comments

Comments
 (0)