29#include "iceberg/expression/literal.h"
30#include "iceberg/iceberg_export.h"
39 explicit PartitionValues(std::vector<Literal> values) : values_(std::move(values)) {}
50 Result<Scalar> GetField(
size_t pos)
const override;
52 size_t num_fields()
const override {
return values_.size(); }
57 Result<std::reference_wrapper<const Literal>> ValueAt(
size_t pos)
const;
65 void Reset(std::vector<Literal> values) { values_ = std::move(values); }
67 std::span<const Literal> values()
const {
return values_; }
69 bool operator==(
const PartitionValues& other)
const;
72 std::vector<Literal> values_;
Literal is a literal value that is associated with a primitive type.
Definition literal.h:39
StructLike wrapper for a vector of literals that represent partition values.
Definition partition_values.h:36
void Reset(std::vector< Literal > values)
Reset the partition values.
Definition partition_values.h:65
size_t num_fields() const override
Get the number of fields in the struct.
Definition partition_values.h:52
void AddValue(Literal value)
Add a value to the partition values.
Definition partition_values.h:61
An immutable struct-like wrapper.
Definition struct_like.h:62