types: template abstract_type::validate on FragmentedView

This is primarily a stylistic change. It makes the interface more consistent
with deserialize(). It will also allow us to call `validate()` for collection
elements in `validate_aux()`.
This commit is contained in:
Michał Chojnowski
2020-11-27 12:31:52 +01:00
parent 15dbe00e8a
commit 82befbe8c0
2 changed files with 8 additions and 3 deletions

View File

@@ -1586,9 +1586,13 @@ struct validate_visitor {
};
}
void abstract_type::validate(const fragmented_temporary_buffer::view& view, cql_serialization_format sf) const {
visit(*this, validate_visitor<fragmented_temporary_buffer::view>{view, sf});
template <FragmentedView View>
void abstract_type::validate(const View& view, cql_serialization_format sf) const {
visit(*this, validate_visitor<View>{view, sf});
}
// Explicit instantiation.
template void abstract_type::validate<>(const single_fragmented_view&, cql_serialization_format) const;
template void abstract_type::validate<>(const fragmented_temporary_buffer::view&, cql_serialization_format) const;
void abstract_type::validate(bytes_view v, cql_serialization_format sf) const {
visit(*this, validate_visitor<single_fragmented_view>{single_fragmented_view(v), sf});

View File

@@ -525,7 +525,8 @@ public:
data_value deserialize_value(bytes_view v) const {
return deserialize_impl(single_fragmented_view(v));
};
void validate(const fragmented_temporary_buffer::view& view, cql_serialization_format sf) const;
// Explicitly instantiated in .cc
template <FragmentedView View> void validate(const View& v, cql_serialization_format sf) const;
void validate(bytes_view view, cql_serialization_format sf) const;
bool is_compatible_with(const abstract_type& previous) const;
/*