sparrow 0.6.0
Loading...
Searching...
No Matches
arrow_schema.hpp File Reference
#include <concepts>
#include <cstdint>
#include <memory>
#include <optional>
#include <ranges>
#include <unordered_set>
#include "sparrow/utils/repeat_container.hpp"
#include "sparrow/arrow_interface/arrow_schema/private_data.hpp"
#include "sparrow/c_interface.hpp"
#include "sparrow/config/config.hpp"
#include "sparrow/utils/contracts.hpp"
#include "sparrow/utils/metadata.hpp"
Include dependency graph for arrow_schema.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  sparrow
 

Functions

template<class F, class N, input_metadata_container M = std::vector<metadata_pair>, std::ranges::input_range CHILDREN_OWNERSHIP>
requires std::constructible_from<arrow_schema_private_data::FormatType, F> && std::constructible_from<arrow_schema_private_data::NameType, N> && std::is_same_v<std::ranges::range_value_t<CHILDREN_OWNERSHIP>, bool>
ArrowSchema sparrow::make_arrow_schema (F format, N name, std::optional< M > metadata, std::optional< std::unordered_set< ArrowFlag > > flags, ArrowSchema **children, const CHILDREN_OWNERSHIP &children_ownership, ArrowSchema *dictionary, bool dictionary_ownership)
 Creates an ArrowSchema owned by a unique_ptr and holding the provided data.
 
SPARROW_API void sparrow::release_arrow_schema (ArrowSchema *schema)
 Release function to use for the ArrowSchema.release member.
 
SPARROW_API void sparrow::empty_release_arrow_schema (ArrowSchema *schema)
 Empty release function to use for the ArrowSchema.release member.
 
template<class F, class N, input_metadata_container M = std::vector<metadata_pair>, std::ranges::input_range CHILDREN_OWNERSHIP>
requires std::constructible_from<arrow_schema_private_data::FormatType, F> && std::constructible_from<arrow_schema_private_data::NameType, N> && std::is_same_v<std::ranges::range_value_t<CHILDREN_OWNERSHIP>, bool>
void sparrow::fill_arrow_schema (ArrowSchema &schema, F format, N name, std::optional< M > metadata, std::optional< std::unordered_set< ArrowFlag > > flags, ArrowSchema **children, const CHILDREN_OWNERSHIP &children_ownership, ArrowSchema *dictionary, bool dictionary_ownership)
 
ArrowSchema sparrow::make_empty_arrow_schema ()
 
SPARROW_API void sparrow::swap (ArrowSchema &lhs, ArrowSchema &rhs)
 Swaps the contents of the two ArrowSchema objects.
 
SPARROW_API void sparrow::copy_schema (const ArrowSchema &source, ArrowSchema &target)
 Fills the target ArrowSchema with a deep copy of the data from the source ArrowSchema.
 
ArrowSchema sparrow::copy_schema (const ArrowSchema &source)
 Deep copy an ArrowSchema.
 
ArrowSchema sparrow::move_schema (ArrowSchema &&source)
 Moves the content of source into a stack-allocated array, and reset the source to an empty ArrowSchema.
 
ArrowSchema sparrow::move_schema (ArrowSchema &source)
 Moves the content of source into a stack-allocated array, and reset the source to an empty ArrowSchema.