make values capable of being a list & add boost

Signed-off-by: Folling <mail@folling.io>
This commit is contained in:
folling 2023-11-28 11:05:53 +01:00 committed by Folling
parent 08ad2c5c66
commit 733b52575b
Signed by: folling
SSH key fingerprint: SHA256:S9qEx5WCFFLK49tE/LKnKuJYM5sw+++Dn6qJbbyxnCY
16 changed files with 315 additions and 140 deletions

View file

@ -1,33 +1,28 @@
#pragma once
#include <string>
#include <vector>
#include <boost/container/vector.hpp>
#include <values/value.hpp>
/// \private
struct IkarusTextValue final : IkarusValue {
public:
explicit IkarusTextValue(std::string value):
IkarusValue{this},
_value(std::move(value)) {}
explicit IkarusTextValue();
IkarusTextValue(IkarusTextValue const&) = default;
IkarusTextValue(IkarusTextValue&&) noexcept = default;
IkarusTextValue(IkarusTextValue&&) = default;
IkarusTextValue& operator=(IkarusTextValue const&) = default;
IkarusTextValue& operator=(IkarusTextValue&&) noexcept = default;
IkarusTextValue& operator=(IkarusTextValue&&) = default;
~IkarusTextValue() override = default;
public:
[[nodiscard]] std::string_view get_value() const noexcept {
return _value;
}
void set_value(std::string_view value) {
_value = value;
}
[[nodiscard]] boost::container::vector<char const *>& get_value();
[[nodiscard]] boost::container::vector<char const *> const& get_value() const;
private:
std::string _value;
boost::container::vector<char const *> _value{};
};