util/TemplateString: add cast operators
This commit is contained in:
parent
02314ac7dd
commit
3af35aee9e
@ -103,7 +103,7 @@ public:
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
AppendMessageIter &AppendEmptyArray() {
|
AppendMessageIter &AppendEmptyArray() {
|
||||||
return AppendMessageIter(*this, DBUS_TYPE_ARRAY,
|
return AppendMessageIter(*this, DBUS_TYPE_ARRAY,
|
||||||
T::as_string.value)
|
T::as_string)
|
||||||
.CloseContainer(*this);
|
.CloseContainer(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,7 +120,7 @@ public:
|
|||||||
AppendMessageIter &AppendVariant(const T &value) {
|
AppendMessageIter &AppendVariant(const T &value) {
|
||||||
typedef VariantTypeTraits Traits;
|
typedef VariantTypeTraits Traits;
|
||||||
return AppendMessageIter(*this, Traits::TYPE,
|
return AppendMessageIter(*this, Traits::TYPE,
|
||||||
Traits::as_string.value)
|
Traits::as_string)
|
||||||
.Append(value)
|
.Append(value)
|
||||||
.CloseContainer(*this);
|
.CloseContainer(*this);
|
||||||
}
|
}
|
||||||
@ -146,7 +146,7 @@ public:
|
|||||||
typedef typename W::ContainedTraits ContainedTraits;
|
typedef typename W::ContainedTraits ContainedTraits;
|
||||||
|
|
||||||
return AppendMessageIter(*this, Traits::TYPE,
|
return AppendMessageIter(*this, Traits::TYPE,
|
||||||
ContainedTraits::as_string.value)
|
ContainedTraits::as_string)
|
||||||
.Append(value.value)
|
.Append(value.value)
|
||||||
.CloseContainer(*this);
|
.CloseContainer(*this);
|
||||||
}
|
}
|
||||||
@ -158,7 +158,7 @@ public:
|
|||||||
typedef typename W::ContainedTraits ContainedTraits;
|
typedef typename W::ContainedTraits ContainedTraits;
|
||||||
|
|
||||||
return AppendMessageIter(*this, Traits::TYPE,
|
return AppendMessageIter(*this, Traits::TYPE,
|
||||||
ContainedTraits::as_string.value)
|
ContainedTraits::as_string)
|
||||||
.AppendFixedArray(value.value)
|
.AppendFixedArray(value.value)
|
||||||
.CloseContainer(*this);
|
.CloseContainer(*this);
|
||||||
}
|
}
|
||||||
|
@ -245,7 +245,7 @@ UdisksNeighborExplorer::HandleMessage(DBusConnection *, DBusMessage *message) no
|
|||||||
|
|
||||||
if (dbus_message_is_signal(message, DBUS_OM_INTERFACE,
|
if (dbus_message_is_signal(message, DBUS_OM_INTERFACE,
|
||||||
"InterfacesAdded") &&
|
"InterfacesAdded") &&
|
||||||
dbus_message_has_signature(message, InterfacesAddedType::as_string.value)) {
|
dbus_message_has_signature(message, InterfacesAddedType::as_string)) {
|
||||||
RecurseInterfaceDictEntry(ReadMessageIter(*message), [this](const char *path, auto &&i){
|
RecurseInterfaceDictEntry(ReadMessageIter(*message), [this](const char *path, auto &&i){
|
||||||
UDisks2::Object o(path);
|
UDisks2::Object o(path);
|
||||||
UDisks2::ParseObject(o, std::forward<decltype(i)>(i));
|
UDisks2::ParseObject(o, std::forward<decltype(i)>(i));
|
||||||
@ -256,7 +256,7 @@ UdisksNeighborExplorer::HandleMessage(DBusConnection *, DBusMessage *message) no
|
|||||||
return DBUS_HANDLER_RESULT_HANDLED;
|
return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
} else if (dbus_message_is_signal(message, DBUS_OM_INTERFACE,
|
} else if (dbus_message_is_signal(message, DBUS_OM_INTERFACE,
|
||||||
"InterfacesRemoved") &&
|
"InterfacesRemoved") &&
|
||||||
dbus_message_has_signature(message, InterfacesRemovedType::as_string.value)) {
|
dbus_message_has_signature(message, InterfacesRemovedType::as_string)) {
|
||||||
Remove(ReadMessageIter(*message).GetString());
|
Remove(ReadMessageIter(*message).GetString());
|
||||||
return DBUS_HANDLER_RESULT_HANDLED;
|
return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
} else
|
} else
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#include <array> // for std::size()
|
#include <array> // for std::size()
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
#include <string_view>
|
||||||
|
|
||||||
namespace TemplateString {
|
namespace TemplateString {
|
||||||
|
|
||||||
@ -39,6 +40,14 @@ template<std::size_t _size>
|
|||||||
struct Buffer {
|
struct Buffer {
|
||||||
static constexpr std::size_t size = _size;
|
static constexpr std::size_t size = _size;
|
||||||
char value[size + 1];
|
char value[size + 1];
|
||||||
|
|
||||||
|
constexpr operator const char *() const noexcept {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr operator std::string_view() const noexcept {
|
||||||
|
return {value, size};
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user