lib/tracy/src/cli/args/scalar.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 const std = @import("std");
2
3 pub fn parsePositiveUsize(text: []const u8) !usize {
4 const value = try parseUsize(text);
5 if (value == 0) return error.InvalidArguments;
6 return value;
7 }
8
9 pub fn parseUsize(text: []const u8) !usize {
10 return std.fmt.parseUnsigned(usize, text, 10) catch error.InvalidArguments;
11 }
12
13 pub fn parseU64(text: []const u8) !u64 {
14 return std.fmt.parseUnsigned(u64, text, 10) catch error.InvalidArguments;
15 }
16
17 pub fn parsePositiveU64(text: []const u8) !u64 {
18 const value = try parseU64(text);
19 if (value == 0) return error.InvalidArguments;
20 return value;
21 }
22
23 pub fn parseAddress(text: []const u8) !u64 {
24 if (std.mem.startsWith(u8, text, "0x") or std.mem.startsWith(u8, text, "0X")) {
25 return std.fmt.parseUnsigned(u64, text[2..], 16) catch error.InvalidArguments;
26 }
27 return parseU64(text);
28 }