code: Convert is_integral assertions to concepts
Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
This commit is contained in:
@@ -186,16 +186,16 @@ static_assert(FragmentedView<buffer_view<bytes_ostream::fragment_iterator>>);
|
||||
using size_type = uint32_t;
|
||||
|
||||
template<typename T, typename Input>
|
||||
requires std::is_integral_v<T>
|
||||
inline T deserialize_integral(Input& input) {
|
||||
static_assert(std::is_integral<T>::value, "T should be integral");
|
||||
T data;
|
||||
input.read(reinterpret_cast<char*>(&data), sizeof(T));
|
||||
return le_to_cpu(data);
|
||||
}
|
||||
|
||||
template<typename T, typename Output>
|
||||
requires std::is_integral_v<T>
|
||||
inline void serialize_integral(Output& output, T data) {
|
||||
static_assert(std::is_integral<T>::value, "T should be integral");
|
||||
data = cpu_to_le(data);
|
||||
output.write(reinterpret_cast<const char*>(&data), sizeof(T));
|
||||
}
|
||||
|
||||
@@ -61,15 +61,15 @@ struct disk_data_value_view {
|
||||
};
|
||||
|
||||
template <typename Size, typename Members>
|
||||
requires std::is_integral_v<Size>
|
||||
struct disk_array {
|
||||
static_assert(std::is_integral<Size>::value, "Length type must be convertible to integer");
|
||||
utils::chunked_vector<Members> elements;
|
||||
};
|
||||
|
||||
// A wrapper struct for integers to be written using variable-length encoding
|
||||
template <typename T>
|
||||
requires std::is_integral_v<T>
|
||||
struct vint {
|
||||
static_assert(std::is_integral_v<T>, "Can only wrap integral types");
|
||||
T value;
|
||||
};
|
||||
|
||||
@@ -80,8 +80,8 @@ struct disk_array_vint_size {
|
||||
};
|
||||
|
||||
template <typename Size, typename Members>
|
||||
requires std::is_integral_v<Size>
|
||||
struct disk_array_ref {
|
||||
static_assert(std::is_integral<Size>::value, "Length type must be convertible to integer");
|
||||
const utils::chunked_vector<Members>& elements;
|
||||
disk_array_ref(const utils::chunked_vector<Members>& elements) : elements(elements) {}
|
||||
};
|
||||
|
||||
@@ -157,8 +157,8 @@ public:
|
||||
uint32_t crc32_vpmsum(uint32_t crc, const uint8_t* p, size_t len);
|
||||
|
||||
template <class T>
|
||||
requires std::is_integral_v<T>
|
||||
void process_le(T in) {
|
||||
static_assert(std::is_integral<T>::value, "T must be integral type.");
|
||||
#if defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
switch (sizeof(T)) {
|
||||
case 1: break;
|
||||
@@ -171,8 +171,8 @@ public:
|
||||
}
|
||||
|
||||
template <class T>
|
||||
requires std::is_integral_v<T>
|
||||
void process_be(T in) {
|
||||
static_assert(std::is_integral<T>::value, "T must be integral type.");
|
||||
in = seastar::net::hton(in);
|
||||
_r = crc32_vpmsum(_r, reinterpret_cast<const uint8_t*>(&in), sizeof(T));
|
||||
}
|
||||
@@ -182,8 +182,8 @@ public:
|
||||
}
|
||||
#else
|
||||
template <class T>
|
||||
requires std::is_integral_v<T>
|
||||
void process_le(T in) {
|
||||
static_assert(std::is_integral<T>::value, "T must be integral type.");
|
||||
#if defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
switch (sizeof(T)) {
|
||||
case 1: break;
|
||||
@@ -196,8 +196,8 @@ public:
|
||||
}
|
||||
|
||||
template <class T>
|
||||
requires std::is_integral_v<T>
|
||||
void process_be(T in) {
|
||||
static_assert(std::is_integral<T>::value, "T must be integral type.");
|
||||
in = seastar::net::hton(in);
|
||||
_r = ::crc32(_r, reinterpret_cast<const uint8_t*>(&in), sizeof(T));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user