27 class storage :
private boost::noncopyable
59 [[nodiscard]] std::int32_t
base_at(std::size_t base_check_index)
const;
67 void set_base_at(std::size_t base_check_index, std::int32_t base);
76 [[nodiscard]] std::uint8_t
check_at(std::size_t base_check_index)
const;
84 void set_check_at(std::size_t base_check_index, std::uint8_t check);
100 [[nodiscard]]
const std::any*
value_at(std::size_t value_index)
const;
130 [[nodiscard]] std::unique_ptr<storage>
clone()
const;
136 virtual std::size_t base_check_size_impl()
const = 0;
138 virtual std::int32_t base_at_impl(std::size_t base_check_index)
const = 0;
140 virtual void set_base_at_impl(std::size_t base_check_index, std::int32_t base) = 0;
142 virtual std::uint8_t check_at_impl(std::size_t base_check_index)
const = 0;
144 virtual void set_check_at_impl(std::size_t base_check_index, std::uint8_t check) = 0;
146 virtual std::size_t value_count_impl()
const = 0;
148 virtual const std::any* value_at_impl(std::size_t value_index)
const = 0;
150 virtual void add_value_at_impl(std::size_t value_index, std::any value) = 0;
152 virtual double filling_rate_impl()
const = 0;
154 virtual void serialize_impl(std::ostream& output_stream,
const value_serializer& value_serializer_)
const = 0;
156 virtual std::unique_ptr<storage> clone_impl()
const = 0;