╭ add_remove_toplevel_fields ───────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭ find file ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╮ ╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │ │ │http│ ssh │ │ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╯ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
1 #update=initial version 2 #file=main.zig 3 const S = @This(); 4 x: u8, 5 pub fn main(init: std.process.Init) !void { 6 var stdout_writer = std.Io.File.stdout().writerStreaming(init.io, &.{}); 7 printFieldCount(&stdout_writer.interface) catch |err| switch (err) { 8 error.WriteFailed => return stdout_writer.err.?, 9 }; 10 printOneField(&stdout_writer.interface) catch |err| switch (err) { 11 error.WriteFailed => return stdout_writer.err.?, 12 }; 13 } 14 fn printFieldCount(w: *Writer) Writer.Error!void { 15 try w.print("{d} ", .{@typeInfo(S).@"struct".field_names.len}); 16 } 17 fn printOneField(w: *Writer) Writer.Error!void { 18 const val: S = .{ .x = 100 }; 19 try w.print("{d}\n", .{val.x}); 20 } 21 const std = @import("std"); 22 const Writer = std.Io.Writer; 23 #expect_stdout="1 100\n" 24 25 #update=add a field 26 #file=main.zig 27 const S = @This(); 28 x: u8, 29 y: u16 = 200, 30 pub fn main(init: std.process.Init) !void { 31 var stdout_writer = std.Io.File.stdout().writerStreaming(init.io, &.{}); 32 printFieldCount(&stdout_writer.interface) catch |err| switch (err) { 33 error.WriteFailed => return stdout_writer.err.?, 34 }; 35 printOneField(&stdout_writer.interface) catch |err| switch (err) { 36 error.WriteFailed => return stdout_writer.err.?, 37 }; 38 } 39 fn printFieldCount(w: *Writer) Writer.Error!void { 40 try w.print("{d} ", .{@typeInfo(S).@"struct".field_names.len}); 41 } 42 fn printOneField(w: *Writer) Writer.Error!void { 43 const val: S = .{ .x = 100 }; 44 try w.print("{d}\n", .{val.x}); 45 } 46 const std = @import("std"); 47 const Writer = std.Io.Writer; 48 #expect_stdout="2 100\n" 49 50 #update=remove all fields 51 #file=main.zig 52 const S = @This(); 53 pub fn main(init: std.process.Init) !void { 54 var stdout_writer = std.Io.File.stdout().writerStreaming(init.io, &.{}); 55 printFieldCount(&stdout_writer.interface) catch |err| switch (err) { 56 error.WriteFailed => return stdout_writer.err.?, 57 }; 58 printOneField(&stdout_writer.interface) catch |err| switch (err) { 59 error.WriteFailed => return stdout_writer.err.?, 60 }; 61 } 62 fn printFieldCount(w: *Writer) Writer.Error!void { 63 try w.print("{d} ", .{@typeInfo(S).@"struct".field_names.len}); 64 } 65 fn printOneField(w: *Writer) Writer.Error!void { 66 const val: S = .{ .x = 100 }; 67 try w.print("{d}\n", .{val.x}); 68 } 69 const std = @import("std"); 70 const Writer = std.Io.Writer; 71 #expect_error=main.zig:15:24: error: no field named 'x' in struct 'main' 72 #expect_error=main.zig:1:1: note: struct declared here 73 74 #update=remove reference to non-existent field 75 #file=main.zig 76 const S = @This(); 77 pub fn main(init: std.process.Init) !void { 78 var stdout_writer = std.Io.File.stdout().writerStreaming(init.io, &.{}); 79 printFieldCount(&stdout_writer.interface) catch |err| switch (err) { 80 error.WriteFailed => return stdout_writer.err.?, 81 }; 82 printOneField(&stdout_writer.interface) catch |err| switch (err) { 83 error.WriteFailed => return stdout_writer.err.?, 84 }; 85 } 86 fn printFieldCount(w: *Writer) Writer.Error!void { 87 try w.print("{d} ", .{@typeInfo(S).@"struct".field_names.len}); 88 } 89 fn printOneField(w: *Writer) Writer.Error!void { 90 //const val: S = .{ .x = 100 }; 91 //try w.print("{d}\n", .{val.x}); 92 try w.writeAll("<no fields>\n"); 93 } 94 const std = @import("std"); 95 const Writer = std.Io.Writer; 96 #expect_stdout="0 <no fields>\n" 97