fn byteFromChar(c: u8, comptime urlsafe: bool) u8
c: u8
urlsafe: bool
308 309 310 311 312 313 314 315
fn byteFromChar(c: u8, comptime urlsafe: bool) u8 { const x = (ge(c, 'A') & le(c, 'Z') & (c -% 'A')) | (ge(c, 'a') & le(c, 'z') & (c -% 'a' +% 26)) | (ge(c, '0') & le(c, '9') & (c -% '0' +% 52)) | (eq(c, if (urlsafe) '-' else '+') & 62) | (eq(c, if (urlsafe) '_' else '/') & 63); return x | (eq(x, 0) & ~eq(c, 'A')); }