const std = @import("std"); pub fn main() u8 { // const y: [3]u64 = .{ 1, 2, 3 }; // const x: struct { u8, u64, u8 } = y; // @import("std").debug.print("{}\n", .{x[0] + x[1] + x[2]}); // std.debug.print("{}\n", .{@sizeOf(struct { u64, ?u8 })}); // return while (true) if (true) break 1; const x: ?*u64 = null; const y: ?*u32 = @ptrCast(x); _ = y; return 0; } // const x: ?u8 = 5; // if (x == null) { // return 1; // } else |val| { // return val; // } // var list = std.ArrayList(u8).init(std.heap.smp_allocator); // try parseUniHex("1f4a9", &list); // std.debug.print("{s}\n", .{list.items}); // fn parseUniHex( // str: []const u8, // s: *std.ArrayList(u8), // ) !void { // var uc: u21 = parseHexDigit1(str[0]); // for (str[1..]) |c| { // uc = try std.math.shlExact(u21, uc, 4); // uc |= parseHexDigit1(c); // } // std.debug.print("{u}\n", .{uc}); // const n = try std.unicode.utf8CodepointSequenceLength(uc); // const buf = try s.addManyAsSlice(n); // _ = try std.unicode.utf8Encode(uc, buf); // } // fn parseHexByte1(h1: u8, h2: u8) u8 { // const hi = parseHexDigit1(h1); // const lo = parseHexDigit1(h2); // return hi << 4 | lo; // } // fn parseHexDigit1(c: u8) u8 { // return switch (c) { // '0'...'9' => c - '0', // 'A'...'F' => c - 'A' + 10, // 'a'...'f' => c - 'a' + 10, // else => @panic(""), // }; // } // fn parseHexByte2(h1: u8, h2: u8) u8 { // const hi: u8 = parseHexDigit2(h1); // const lo = parseHexDigit2(h2); // return hi << 4 | lo; // } // fn parseHexDigit2(c: u8) u4 { // return @intCast(switch (c) { // '0'...'9' => c - '0', // 'A'...'F' => c - 'A' + 10, // 'a'...'f' => c - 'a' + 10, // else => @panic(""), // }); // } // fn parseUniHex1(str: []const u8) !u21 { // var uc: u21 = parseHexDigit1(str[0]); // for (str[1..]) |c| { // uc = try std.math.shlExact(u21, uc, 4); // uc |= parseHexDigit1(c); // } // return uc; // } // fn parseUniHex2(str: []const u8) !u21 { // var uc: u21 = parseHexDigit2(str[0]); // for (str[1..]) |c| { // uc = try std.math.shlExact(u21, uc, 4); // uc |= parseHexDigit2(c); // } // return uc; // }