diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2020-01-27 21:56:06 +0100 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2020-02-05 21:02:08 +0100 |
commit | 495d2cb6b47b309070b31e0ef83fa5731a150a6d (patch) | |
tree | dddf94ae3513409d2e80801b085686cf88c760a5 /include/erebos | |
parent | ab86a1f0c3b86050e65fc5b7ac1e88a00f0d228c (diff) |
Storage: handle record items with unknown type
Diffstat (limited to 'include/erebos')
-rw-r--r-- | include/erebos/storage.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/include/erebos/storage.h b/include/erebos/storage.h index d855460..d23022f 100644 --- a/include/erebos/storage.h +++ b/include/erebos/storage.h @@ -160,12 +160,19 @@ class RecordT public: class Item { public: + struct UnknownType + { + std::string type; + std::string value; + }; + typedef std::variant< std::monostate, int, std::string, std::vector<uint8_t>, - typename S::Ref> Variant; + typename S::Ref, + UnknownType> Variant; Item(const std::string & name): Item(name, std::monostate()) {} @@ -184,6 +191,7 @@ public: std::optional<std::string> asText() const; std::optional<std::vector<uint8_t>> asBinary() const; std::optional<typename S::Ref> asRef() const; + std::optional<UnknownType> asUnknown() const; template<typename T> std::optional<Stored<T>> as() const; |