diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/base32.zig | 14 | ||||
| -rw-r--r-- | src/crc16.zig | 4 | ||||
| -rw-r--r-- | src/main.zig | 12 |
3 files changed, 15 insertions, 15 deletions
diff --git a/src/base32.zig b/src/base32.zig index 4e79a73..bce6254 100644 --- a/src/base32.zig +++ b/src/base32.zig | |||
| @@ -66,8 +66,8 @@ pub const Encoder = struct { | |||
| 66 | fn frontBits(self: *const Self) ?u5 { | 66 | fn frontBits(self: *const Self) ?u5 { |
| 67 | const index = self.index orelse return null; | 67 | const index = self.index orelse return null; |
| 68 | const bits = self.buffer[index]; | 68 | const bits = self.buffer[index]; |
| 69 | if (self.bit_off >= 4) return @truncate(u5, bits << (self.bit_off - 3)); | 69 | if (self.bit_off >= 4) return @as(u5, @truncate(bits << (self.bit_off - 3))); |
| 70 | return @truncate(u5, bits >> (3 - self.bit_off)); | 70 | return @as(u5, @truncate(bits >> (3 - self.bit_off))); |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | /// Get the bits of `self.buffer[self.index]` with the maximum amount specified by the `bits` parameter, | 73 | /// Get the bits of `self.buffer[self.index]` with the maximum amount specified by the `bits` parameter, |
| @@ -85,7 +85,7 @@ pub const Encoder = struct { | |||
| 85 | fn backBits(self: *const Self, bits: u3) u5 { | 85 | fn backBits(self: *const Self, bits: u3) u5 { |
| 86 | std.debug.assert(bits <= 5); | 86 | std.debug.assert(bits <= 5); |
| 87 | if (bits == 0 or self.index == null) return 0; | 87 | if (bits == 0 or self.index == null) return 0; |
| 88 | return @truncate(u5, self.buffer[self.index.?] >> (7 - bits + 1)); | 88 | return @as(u5, @truncate(self.buffer[self.index.?] >> (7 - bits + 1))); |
| 89 | } | 89 | } |
| 90 | 90 | ||
| 91 | /// Get the next 5-bit integer, read from `self.buffer`. | 91 | /// Get the next 5-bit integer, read from `self.buffer`. |
| @@ -172,10 +172,10 @@ pub const Decoder = struct { | |||
| 172 | /// Get a character from the buffer. | 172 | /// Get a character from the buffer. |
| 173 | fn decodeChar(c: u8) DecodeError!u5 { | 173 | fn decodeChar(c: u8) DecodeError!u5 { |
| 174 | if (c >= 'A' and c <= 'Z') { | 174 | if (c >= 'A' and c <= 'Z') { |
| 175 | return @truncate(u5, c - @as(u8, 'A')); | 175 | return @as(u5, @truncate(c - @as(u8, 'A'))); |
| 176 | } else if (c >= '2' and c <= '9') { | 176 | } else if (c >= '2' and c <= '9') { |
| 177 | // '2' -> 26 | 177 | // '2' -> 26 |
| 178 | return @truncate(u5, c - @as(u8, '2') + 26); | 178 | return @as(u5, @truncate(c - @as(u8, '2') + 26)); |
| 179 | } else { | 179 | } else { |
| 180 | return error.CorruptInput; | 180 | return error.CorruptInput; |
| 181 | } | 181 | } |
| @@ -200,7 +200,7 @@ pub const Decoder = struct { | |||
| 200 | // Calculate how many bits of the decoded remain when we've written part of it to the buffer. | 200 | // Calculate how many bits of the decoded remain when we've written part of it to the buffer. |
| 201 | const c_remaining_len = 5 - buf_write_len; | 201 | const c_remaining_len = 5 - buf_write_len; |
| 202 | // Write (the first) part of the decoded character to the buffer. | 202 | // Write (the first) part of the decoded character to the buffer. |
| 203 | self.buf |= (@as(u8, c) << 3) >> @truncate(u3, self.buf_len); | 203 | self.buf |= (@as(u8, c) << 3) >> @as(u3, @truncate(self.buf_len)); |
| 204 | self.buf_len += buf_write_len; | 204 | self.buf_len += buf_write_len; |
| 205 | if (self.buf_len == 8) { | 205 | if (self.buf_len == 8) { |
| 206 | // The buffer is full, we can return a byte. | 206 | // The buffer is full, we can return a byte. |
| @@ -210,7 +210,7 @@ pub const Decoder = struct { | |||
| 210 | if (buf_write_len != 5) { | 210 | if (buf_write_len != 5) { |
| 211 | // We didn't write the entire decoded character to the buffer. | 211 | // We didn't write the entire decoded character to the buffer. |
| 212 | // Write the remaining part to the beginning of the buffer. | 212 | // Write the remaining part to the beginning of the buffer. |
| 213 | self.buf = @as(u8, c) << @truncate(u3, buf_write_len + 3); | 213 | self.buf = @as(u8, c) << @as(u3, @truncate(buf_write_len + 3)); |
| 214 | } | 214 | } |
| 215 | return ret; | 215 | return ret; |
| 216 | } | 216 | } |
diff --git a/src/crc16.zig b/src/crc16.zig index 3ea5a15..1257ea2 100644 --- a/src/crc16.zig +++ b/src/crc16.zig | |||
| @@ -7,7 +7,7 @@ const crc16tab: [256]u16 = tab: { | |||
| 7 | const poly: u32 = 0x1021; | 7 | const poly: u32 = 0x1021; |
| 8 | var table: [256]u16 = undefined; | 8 | var table: [256]u16 = undefined; |
| 9 | 9 | ||
| 10 | for (table) |*crc, i| { | 10 | for (&table, 0..) |*crc, i| { |
| 11 | crc.* = @as(u16, i) << 8; | 11 | crc.* = @as(u16, i) << 8; |
| 12 | var j = 0; | 12 | var j = 0; |
| 13 | while (j < 8) : (j += 1) { | 13 | while (j < 8) : (j += 1) { |
| @@ -25,7 +25,7 @@ const crc16tab: [256]u16 = tab: { | |||
| 25 | pub fn update(crc: u16, with_data: []const u8) u16 { | 25 | pub fn update(crc: u16, with_data: []const u8) u16 { |
| 26 | var new_crc = crc; | 26 | var new_crc = crc; |
| 27 | for (with_data) |b| { | 27 | for (with_data) |b| { |
| 28 | new_crc = (new_crc << 8) ^ crc16tab[@truncate(u8, new_crc >> 8) ^ b]; | 28 | new_crc = (new_crc << 8) ^ crc16tab[@as(u8, @truncate(new_crc >> 8)) ^ b]; |
| 29 | } | 29 | } |
| 30 | return new_crc; | 30 | return new_crc; |
| 31 | } | 31 | } |
diff --git a/src/main.zig b/src/main.zig index 6f68295..18c86d1 100644 --- a/src/main.zig +++ b/src/main.zig | |||
| @@ -393,7 +393,7 @@ pub fn areKeySectionContentsValid(contents: []const u8) bool { | |||
| 393 | return true; | 393 | return true; |
| 394 | } | 394 | } |
| 395 | 395 | ||
| 396 | pub fn findKeySection(line_it: *std.mem.SplitIterator(u8)) ?[]const u8 { | 396 | pub fn findKeySection(line_it: *std.mem.SplitIterator(u8, .scalar)) ?[]const u8 { |
| 397 | while (true) { | 397 | while (true) { |
| 398 | const opening_line = line_it.next() orelse return null; | 398 | const opening_line = line_it.next() orelse return null; |
| 399 | if (!isKeySectionBarrier(opening_line, true)) continue; | 399 | if (!isKeySectionBarrier(opening_line, true)) continue; |
| @@ -409,12 +409,12 @@ pub fn findKeySection(line_it: *std.mem.SplitIterator(u8)) ?[]const u8 { | |||
| 409 | } | 409 | } |
| 410 | 410 | ||
| 411 | pub fn parseDecoratedJwt(contents: []const u8) []const u8 { | 411 | pub fn parseDecoratedJwt(contents: []const u8) []const u8 { |
| 412 | var line_it = mem.split(u8, contents, "\n"); | 412 | var line_it = mem.splitScalar(u8, contents, '\n'); |
| 413 | return findKeySection(&line_it) orelse return contents; | 413 | return findKeySection(&line_it) orelse return contents; |
| 414 | } | 414 | } |
| 415 | 415 | ||
| 416 | pub fn parseDecoratedNkey(contents: []const u8) NoNkeySeedFoundError!SeedKeyPair { | 416 | pub fn parseDecoratedNkey(contents: []const u8) NoNkeySeedFoundError!SeedKeyPair { |
| 417 | var line_it = mem.split(u8, contents, "\n"); | 417 | var line_it = mem.splitScalar(u8, contents, '\n'); |
| 418 | var seed: ?[]const u8 = null; | 418 | var seed: ?[]const u8 = null; |
| 419 | if (findKeySection(&line_it) != null) | 419 | if (findKeySection(&line_it) != null) |
| 420 | seed = findKeySection(&line_it); | 420 | seed = findKeySection(&line_it); |
| @@ -444,8 +444,8 @@ fn isValidCredsNkey(text: []const u8) bool { | |||
| 444 | fn findNkey(text: []const u8) ?[]const u8 { | 444 | fn findNkey(text: []const u8) ?[]const u8 { |
| 445 | var line_it = std.mem.split(u8, text, "\n"); | 445 | var line_it = std.mem.split(u8, text, "\n"); |
| 446 | while (line_it.next()) |line| { | 446 | while (line_it.next()) |line| { |
| 447 | for (line) |c, i| { | 447 | for (line, 0..) |c, i| { |
| 448 | if (!ascii.isSpace(c)) { | 448 | if (!ascii.isWhitespace(c)) { |
| 449 | if (isValidCredsNkey(line[i..])) return line[i..]; | 449 | if (isValidCredsNkey(line[i..])) return line[i..]; |
| 450 | break; | 450 | break; |
| 451 | } | 451 | } |
| @@ -554,7 +554,7 @@ test "different key types" { | |||
| 554 | 554 | ||
| 555 | test "validation" { | 555 | test "validation" { |
| 556 | const roles = @typeInfo(Role).Enum.fields; | 556 | const roles = @typeInfo(Role).Enum.fields; |
| 557 | inline for (roles) |field, i| { | 557 | inline for (roles, 0..) |field, i| { |
| 558 | const role = @field(Role, field.name); | 558 | const role = @field(Role, field.name); |
| 559 | const next_role = next: { | 559 | const next_role = next: { |
| 560 | const next_field_i = if (i == roles.len - 1) 0 else i + 1; | 560 | const next_field_i = if (i == roles.len - 1) 0 else i + 1; |