feat: add std::variant constructor and conversion operator to sdbus::Variant (#429)

Signed-off-by: Anthony Brandon <anthony@amarulasolutions.com>
This commit is contained in:
Anthony Brandon
2024-04-04 20:16:27 +02:00
committed by GitHub
parent b9088cc801
commit 334fcb8833
2 changed files with 54 additions and 0 deletions
+17
View File
@@ -65,6 +65,14 @@ namespace sdbus {
msg_.seal();
}
template <typename... _Elements>
Variant(const std::variant<_Elements...>& value)
: Variant()
{
msg_ << value;
msg_.seal();
}
template <typename _ValueType>
_ValueType get() const
{
@@ -83,6 +91,15 @@ namespace sdbus {
return get<_ValueType>();
}
template <typename... _Elements>
operator std::variant<_Elements...>() const
{
std::variant<_Elements...> result;
msg_.rewind(false);
msg_ >> result;
return result;
}
template <typename _Type>
bool containsValueOfType() const
{