authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2024-09-04 12:32:04 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2024-09-04 12:32:04 -07:00
log9441f0a543b22301e90bba8cd993e34b0a05783c
treee4369e38e1115ab5e8dcc009674c8dd29d6db91b
parent7ef45fbcd11d2af38fa372137d45c2fd4d9e94b8

add FlippedInt


2 files changed, 44 insertions(+), 0 deletions(-)

src/FlippedInt.zig created+43
...@@ -0,0 +1,43 @@
1const std = @import("std");
2const string = []const u8;
3const extras = @import("./lib.zig");
4
5pub fn FlippedInt(comptime T: type) type {
6 var info = @typeInfo(T);
7 info.Int.signedness = switch (info.Int.signedness) {
8 .signed => .unsigned,
9 .unsigned => .signed,
10 };
11 return @Type(info);
12}
13
14test {
15 try std.testing.expect(FlippedInt(u1) == i1);
16}
17test {
18 try std.testing.expect(FlippedInt(u2) == i2);
19}
20test {
21 try std.testing.expect(FlippedInt(u3) == i3);
22}
23test {
24 try std.testing.expect(FlippedInt(u4) == i4);
25}
26test {
27 try std.testing.expect(FlippedInt(u5) == i5);
28}
29test {
30 try std.testing.expect(FlippedInt(i1) == u0);
31}
32test {
33 try std.testing.expect(FlippedInt(i2) == u1);
34}
35test {
36 try std.testing.expect(FlippedInt(i3) == u2);
37}
38test {
39 try std.testing.expect(FlippedInt(i4) == u3);
40}
41test {
42 try std.testing.expect(FlippedInt(i5) == u4);
43}
src/lib.zig+1
...@@ -94,3 +94,4 @@ pub usingnamespace @import("./expectSimilarType.zig");...@@ -94,3 +94,4 @@ pub usingnamespace @import("./expectSimilarType.zig");
94pub usingnamespace @import("./rawIntBytes.zig");94pub usingnamespace @import("./rawIntBytes.zig");
95pub usingnamespace @import("./globalOption.zig");95pub usingnamespace @import("./globalOption.zig");
96pub usingnamespace @import("./OneSmallerInt.zig");96pub usingnamespace @import("./OneSmallerInt.zig");
97pub usingnamespace @import("./FlippedInt.zig");