query/include/matador/utils/primary_key_attribute.hpp

42 lines
1.1 KiB
C++

#ifndef PRIMARY_KEY_ATTRIBUTE_HPP
#define PRIMARY_KEY_ATTRIBUTE_HPP
#include <cstddef>
namespace matador::utils {
class primary_key_attribute final {
public:
/**
* Creates a primary_key_attribute instance
* with size 0 (zero).
*/
primary_key_attribute() = default;
/**
* Creates primary_key_attribute instance
* with given size.
*
* @param size Size of the attribute
*/
primary_key_attribute(size_t size); // NOLINT(*-explicit-constructor)
~primary_key_attribute() = default;
primary_key_attribute(const primary_key_attribute &) = default;
primary_key_attribute(primary_key_attribute &&) = default;
primary_key_attribute &operator=(const primary_key_attribute &) = default;
primary_key_attribute &operator=(primary_key_attribute &&) = default;
primary_key_attribute& operator=(size_t size);
/**
* Returns the size of the field
*
* @return Size of the field
*/
[[nodiscard]] size_t size() const;
private:
size_t size_ = 0;
};
}
#endif //PRIMARY_KEY_ATTRIBUTE_HPP