LibCrypto: Add Formatter<SignedBigInteger>

Useful for seeing SignedBigInteger values in test failure messages.
This commit is contained in:
Nico Weber 2022-01-17 12:17:40 -05:00 committed by Ali Mohammad Pur
parent b87e517deb
commit ec37eadb39
Notes: sideshowbarker 2024-07-18 00:34:07 +09:00
2 changed files with 12 additions and 0 deletions

View file

@ -308,3 +308,10 @@ bool SignedBigInteger::operator>=(const SignedBigInteger& other) const
}
}
ErrorOr<void> AK::Formatter<Crypto::SignedBigInteger>::format(FormatBuilder& fmtbuilder, const Crypto::SignedBigInteger& value)
{
if (value.is_negative())
TRY(fmtbuilder.put_string("-"));
return Formatter<Crypto::UnsignedBigInteger>::format(fmtbuilder, value.unsigned_value());
}

View file

@ -143,6 +143,11 @@ struct SignedDivisionResult {
}
template<>
struct AK::Formatter<Crypto::SignedBigInteger> : AK::Formatter<Crypto::UnsignedBigInteger> {
ErrorOr<void> format(FormatBuilder&, Crypto::SignedBigInteger const&);
};
inline Crypto::SignedBigInteger
operator""_sbigint(const char* string, size_t length)
{