Compare commits

...

1 Commits

Author SHA1 Message Date
4ff3695895 feat: add matchExact to the APIi
TODO: write doc comment
2023-08-17 23:59:17 -05:00

View File

@@ -121,8 +121,6 @@ pub fn extract(comptime bit_string: []const u8, value: anytype) Bitfield(bit_str
}; };
comptime verify(ValT, bit_string); comptime verify(ValT, bit_string);
std.debug.assert(match(bit_string, value)); // prevents branchless impl in ReleaseSafe
var ret: ReturnT = undefined; var ret: ReturnT = undefined;
inline for (@typeInfo(ReturnT).Struct.fields) |field| { inline for (@typeInfo(ReturnT).Struct.fields) |field| {
@@ -148,6 +146,11 @@ pub fn extract(comptime bit_string: []const u8, value: anytype) Bitfield(bit_str
return ret; return ret;
} }
pub fn matchExtract(comptime bit_string: []const u8, value: anytype) ?Bitfield(bit_string) {
if (!match(bit_string, value)) return null;
return extract(bit_string, value);
}
test "extract" { test "extract" {
// doc tests // doc tests
{ {