mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-12 19:02:12 +00:00
types: introduce to_bytes_opt_vec function.
It converts a vector<bytes_view_opt> to a vector<bytes_opt>. Used in a bunch of places.
This commit is contained in:
@@ -92,15 +92,8 @@ tuples::in_value::from_serialized(const fragmented_temporary_buffer::view& value
|
||||
|
||||
std::vector<std::vector<bytes_opt>> elements;
|
||||
elements.reserve(l.size());
|
||||
for (auto&& element : l) {
|
||||
auto tuple_buff = ttype->decompose(element);
|
||||
auto tuple = ttype->split(tuple_buff);
|
||||
std::vector<bytes_opt> elems;
|
||||
elems.reserve(tuple.size());
|
||||
for (auto&& e : tuple) {
|
||||
elems.emplace_back(to_bytes_opt(e));
|
||||
}
|
||||
elements.emplace_back(std::move(elems));
|
||||
for (auto&& e : l) {
|
||||
elements.emplace_back(to_bytes_opt_vec(ttype->split(ttype->decompose(e))));
|
||||
}
|
||||
return tuples::in_value(elements);
|
||||
});
|
||||
|
||||
@@ -112,10 +112,8 @@ public:
|
||||
value(std::vector<bytes_opt> elements)
|
||||
: _elements(std::move(elements)) {
|
||||
}
|
||||
value(std::vector<bytes_view_opt> elements) {
|
||||
for (auto&& e : elements) {
|
||||
_elements.push_back(e ? bytes_opt(bytes(e->begin(), e->size())) : bytes_opt());
|
||||
}
|
||||
value(std::vector<bytes_view_opt> elements)
|
||||
: value(to_bytes_opt_vec(std::move(elements))) {
|
||||
}
|
||||
static value from_serialized(const fragmented_temporary_buffer::view& buffer, const tuple_type_impl& type) {
|
||||
return with_linearized(buffer, [&] (bytes_view view) {
|
||||
|
||||
9
types.cc
9
types.cc
@@ -96,6 +96,15 @@ sstring inet_to_string(const seastar::net::inet_address& addr) {
|
||||
return out.str();
|
||||
}
|
||||
|
||||
std::vector<bytes_opt> to_bytes_opt_vec(const std::vector<bytes_view_opt>& v) {
|
||||
std::vector<bytes_opt> r;
|
||||
r.reserve(v.size());
|
||||
for (auto& e: v) {
|
||||
r.push_back(to_bytes_opt(e));
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
static const char* byte_type_name = "org.apache.cassandra.db.marshal.ByteType";
|
||||
static const char* short_type_name = "org.apache.cassandra.db.marshal.ShortType";
|
||||
static const char* int32_type_name = "org.apache.cassandra.db.marshal.Int32Type";
|
||||
|
||||
Reference in New Issue
Block a user