summaryrefslogtreecommitdiff
path: root/_tests/test.zig
blob: 7e86ed2bd54476b78dbc9e1a5a63a7faac8b7479 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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;
// }