diff --git a/src/imb.zig b/src/imb.zig index 0574ae0..92b5a00 100644 --- a/src/imb.zig +++ b/src/imb.zig @@ -134,7 +134,7 @@ fn bitsSet(comptime T: type, value: T) u8 { return count; } -fn findCodeword(character: u13) u13 { +fn findCodeword(character: u13) ?u13 { const b = bitsSet(u13, character); if (b == 2) { for (character_table_2, 0..) |item, codeword| { @@ -149,7 +149,8 @@ fn findCodeword(character: u13) u13 { } } } - unreachable; + + return null; } fn generateChecksum(data: [13]u8) u16 { @@ -212,7 +213,7 @@ fn decode(bars: [65]BarType) Error!BarcodeResult { else => return error.DecodingError, } - character.* = findCodeword(character.*); + character.* = findCodeword(character.*).?; } characters[9] /= 2; @@ -280,7 +281,6 @@ pub fn decodeString(str: *const [65:0]u8) Error!BarcodeResult { else => return error.InvalidCharacter, }; } - const thing = try decode(bars); - return thing; + return try decode(bars); } diff --git a/web/imb.wasm b/web/imb.wasm index c34d468..cba5bfe 100755 Binary files a/web/imb.wasm and b/web/imb.wasm differ diff --git a/web/index.html b/web/index.html index ce2e356..d91863e 100644 --- a/web/index.html +++ b/web/index.html @@ -13,6 +13,8 @@
+ [source] +