query/include/matador/utils/identifier_accessor.hpp

31 lines
1.0 KiB
C++

#ifndef MATADOR_IDENTIFIER_ACCESSOR_HPP
#define MATADOR_IDENTIFIER_ACCESSOR_HPP
#include "matador/utils/identifier.hpp"
#include "matador/utils/result.hpp"
namespace matador::utils {
class identifier_setter : public identifier_serializer {
public:
explicit identifier_setter(identifier &id);
template <typename ValueType>
void set(const ValueType &val) {
id_.serialize(*this, val);
}
void serialize(int16_t &, const field_attributes &) override;
void serialize(int32_t &, const field_attributes &) override;
void serialize(int64_t &, const field_attributes &) override;
void serialize(uint8_t &, const field_attributes &) override;
void serialize(uint16_t &, const field_attributes &) override;
void serialize(uint32_t &, const field_attributes &) override;
void serialize(uint64_t &, const field_attributes &) override;
void serialize(std::string &, const field_attributes &) override;
void serialize(null_type_t &, const field_attributes &) override;
private:
identifier &id_;
};
}
#endif //MATADOR_IDENTIFIER_ACCESSOR_HPP