Get substring after separator.
Get substring after separator.
get_substr_after_separator("w:abc", ":") returns std::optional<std::string_view>("abc") get_substr_after_separator("abc", ":") returns std::nullopt get_substr_after_separator("", ":") returns std::nullopt
#pragma once
#include <cstdint>
#include <optional>
#include <string_view>
#include <sparrow/record_batch.hpp>
{
{
return (n + 7) & -8;
}
template <std::ranges::input_range R>
requires std::same_as<std::ranges::range_value_t<R>, sparrow::record_batch>
{
if (record_batches.empty() || record_batches.size() == 1)
{
return true;
}
const sparrow::record_batch& first_rb = record_batches[0];
const size_t first_rb_nb_columns = first_rb.nb_columns();
for (const sparrow::record_batch& rb : record_batches)
{
const auto rb_nb_columns = rb.nb_columns();
if (rb_nb_columns != first_rb_nb_columns)
{
return false;
}
for (size_t col_idx = 0; col_idx < rb.nb_columns(); ++col_idx)
{
const sparrow::array& arr = rb.get_column(col_idx);
const sparrow::array& first_arr = first_rb.get_column(col_idx);
const auto arr_data_type = arr.data_type();
const auto first_arr_data_type = first_arr.data_type();
if (arr_data_type != first_arr_data_type)
{
return false;
}
}
}
return true;
}
}
SPARROW_IPC_API std::optional< int32_t > get_substr_as_int32(std::string_view str, std::string_view sep)
SPARROW_IPC_API std::optional< std::string_view > get_substr_after_separator(std::string_view str, std::string_view sep)
SPARROW_IPC_API std::optional< std::tuple< int32_t, int32_t, std::optional< int32_t > > > parse_decimal_format(std::string_view format_str)
constexpr size_t align_to_8(const size_t n)
bool check_record_batches_consistency(const R &record_batches)
Checks if all record batches in a collection have consistent structure.
SPARROW_IPC_API std::optional< int32_t > parse_to_int32(std::string_view str)
SPARROW_IPC_API std::vector< std::string_view > extract_words_after_colon(std::string_view str)