pub fn parseTimeDigits(text: *const [2]u8, min: u8, max: u8) !u8 text: *const [2]u8min: u8max: u8716
717
718
719
720
721
722
723
724
725
726
727
728
729
730pub fn parseTimeDigits(text: *const [2]u8, min: u8, max: u8) !u8 {
const V = @Vector(2, u16);
const bytes: V = text.*;
const zero: V = @splat('0');
const mm: V = .{ 10, 1 };
const d = bytes -% zero;
if (@reduce(.Or, d > @as(V, @splat(9)))) {
@branchHint(.unlikely);
return error.CertificateTimeInvalid;
}
const result = @reduce(.Add, d *% mm);
if (result < min) return error.CertificateTimeInvalid;
if (result > max) return error.CertificateTimeInvalid;
return @intCast(result);
}