types: deserialize duration type from FragmentedView

A part of the transition of deserialize from bytes_view to FragmentedView.
This commit is contained in:
Michał Chojnowski
2020-11-22 00:43:01 +01:00
parent 75a56f439b
commit 760bc5fd60

View File

@@ -1843,9 +1843,12 @@ static big_decimal deserialize_value(const decimal_type_impl& , bytes_view v) {
return big_decimal(scale, unscaled);
}
static cql_duration deserialize_value(const duration_type_impl& t, bytes_view v) {
template<FragmentedView View>
cql_duration deserialize_value(const duration_type_impl& t, View v) {
common_counter_type months, days, nanoseconds;
std::tie(months, days, nanoseconds) = deserialize_counters(v);
std::tie(months, days, nanoseconds) = with_linearized(v, [] (bytes_view bv) {
return deserialize_counters(bv);
});
return cql_duration(months_counter(months), days_counter(days), nanoseconds_counter(nanoseconds));
}