Skip to content

Commit d844976

Browse files
mrtsmetsma
andcommitted
Refactor MaskedATREntry to use std::equal() in operator==
WE2-1040 Signed-off-by: Mart Somermaa <[email protected]> Co-authored-by: Raul Metsma <[email protected]>
1 parent dd635a9 commit d844976

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

src/electronic-id.cpp

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -121,17 +121,12 @@ struct MaskedATREntry
121121

122122
bool operator==(const byte_vector& atr) const
123123
{
124-
if (atr.size() != pattern.size()) {
125-
return false;
126-
}
127-
128-
for (size_t i = 0; i < atr.size(); ++i) {
129-
if ((atr[i] & mask[i]) != (pattern[i] & mask[i])) {
130-
return false;
131-
}
132-
}
133-
134-
return true;
124+
return std::equal(atr.cbegin(), atr.cend(), pattern.cbegin(), pattern.cend(),
125+
[mask_ptr = mask.data()](byte_type a, byte_type p) mutable {
126+
bool result = (a & *mask_ptr) == (p & *mask_ptr);
127+
++mask_ptr;
128+
return result;
129+
});
135130
}
136131

137132
byte_vector pattern;

0 commit comments

Comments
 (0)