#pragma once
#include <test/libsolidity/util/SoltestTypes.h>
#include <libsolutil/CommonData.h>
namespace solidity::frontend::test
{
class BytesUtils
{
public:
static bytes alignLeft(bytes _bytes);
static bytes alignRight(bytes _bytes);
static bytes applyAlign(
Parameter::Alignment _alignment,
ABIType& _abiType,
bytes _bytes
);
static bytes convertBoolean(std::string const& _literal);
static bytes convertNumber(std::string const& _literal);
static bytes convertFixedPoint(std::string const& _literal, size_t& o_fractionalDigits);
static bytes convertHexNumber(std::string const& _literal);
static bytes convertString(std::string const& _literal);
static std::string formatUnsigned(bytes const& _bytes);
static std::string formatSigned(bytes const& _bytes);
static std::string formatBoolean(bytes const& _bytes);
static std::string formatHex(bytes const& _bytes, bool _shorten = false);
static std::string formatHexString(bytes const& _bytes);
static std::string formatString(bytes const& _bytes, size_t _cutOff);
static std::string formatString(bytes const& _bytes)
{
return formatString(_bytes, _bytes.size());
}
static std::string formatFixedPoint(bytes const& _bytes, bool _signed, size_t _fractionalDigits);
static std::string formatRawBytes(
bytes const& _bytes,
ParameterList const& _parameters,
std::string _linePrefix = ""
);
static std::string formatBytes(bytes const& _bytes, ABIType const& _abiType);
static std::string formatBytesRange(
bytes _bytes,
ParameterList const& _parameters,
bool _highlight
);
static size_t countRightPaddedZeros(bytes const& _bytes);
};
}