From f22fb3005555fd954f67b296dfda3b70684d373c Mon Sep 17 00:00:00 2001 From: DerThorsten Date: Fri, 15 Nov 2024 13:25:43 +0100 Subject: [PATCH] detail --- include/sparrow/builder/builder.hpp | 43 ++++++++++++++--------- include/sparrow/builder/builder_utils.hpp | 9 ++--- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/include/sparrow/builder/builder.hpp b/include/sparrow/builder/builder.hpp index 8d385cfec..6f44c6828 100644 --- a/include/sparrow/builder/builder.hpp +++ b/include/sparrow/builder/builder.hpp @@ -35,6 +35,21 @@ namespace sparrow { +namespace detail{ +template +struct builder; +} // namespace detail + +template +auto build(T&& t) +{ + return detail::builder::create(std::forward(t)); +} + + +namespace detail +{ + template concept translates_to_primitive_layout = std::ranges::input_range && @@ -79,16 +94,10 @@ concept translate_to_variable_sized_binary_layout = template struct builder; -template -auto build(T&& t) -{ - return builder::create(std::forward(t)); -} - template< translates_to_primitive_layout T> struct builder { - using type = primitive_array>::type>; + using type = sparrow::primitive_array>::type>; template static type create(U&& t) { @@ -121,7 +130,7 @@ struct builder template< translate_to_fixed_sized_list_layout T> struct builder { - using type = fixed_sized_list_array; + using type = sparrow::fixed_sized_list_array; constexpr static std::size_t list_size = std::tuple_size_v>>; template @@ -131,8 +140,8 @@ struct builder return type( static_cast(list_size), - array(build(flat_list_view)) - //,where_null(t) + array(build(flat_list_view)), + where_null(t) ); } }; @@ -140,7 +149,7 @@ struct builder template< translate_to_struct_layout T> struct builder { - using type = struct_array; + using type = sparrow::struct_array; static constexpr std::size_t n_children = std::tuple_size_v>>; template @@ -156,8 +165,8 @@ struct builder }); detyped_children[decltype(i)::value] = array(build(tuple_i_col)); }); - return type(std::move(detyped_children) - //, where_null(t) + return type(std::move(detyped_children), + where_null(t) ); } }; @@ -166,7 +175,7 @@ struct builder template< translate_to_variable_sized_binary_layout T> struct builder { - using type = string_array; + using type = sparrow::string_array; template static type create(U && t) @@ -180,11 +189,13 @@ struct builder return type( std::move(data_buffer), - type::offset_from_sizes(sizes) - //,where_null(t) + type::offset_from_sizes(sizes), + where_null(t) ); } }; +} // namespace detail + }// namespace sparrow \ No newline at end of file diff --git a/include/sparrow/builder/builder_utils.hpp b/include/sparrow/builder/builder_utils.hpp index ba3b44c43..76d0fdc0b 100644 --- a/include/sparrow/builder/builder_utils.hpp +++ b/include/sparrow/builder/builder_utils.hpp @@ -30,7 +30,7 @@ namespace sparrow { - namespace detail +namespace detail { template void for_each_index_impl(F&& f, std::index_sequence) @@ -38,13 +38,13 @@ namespace sparrow // Apply f to each index individually (f(std::integral_constant{}), ...); } -} + template void for_each_index(F&& f) { // Use std::forward to preserve value category - detail::for_each_index_impl(std::forward(f), std::make_index_sequence()); + for_each_index_impl(std::forward(f), std::make_index_sequence()); } @@ -95,7 +95,7 @@ namespace sparrow }; template - concept is_nullable_like =(is_nullable_like_generic || is_nullable_v); + concept is_nullable_like =(is_nullable_like_generic || sparrow::is_nullable_v); template @@ -181,6 +181,7 @@ namespace sparrow return t | std::views::transform([](auto && v) { return v.get(); }); } +} // namespace detail } // namespace sparrow \ No newline at end of file