14template <
typename T,
typename = std::enable_if_t<std::is_enum_v<T>>>
16 return static_cast<std::underlying_type_t<T>
>(value);
19[[nodiscard]]
inline auto toNative(std::string_view value) {
23template <
typename T,
typename = std::enable_if_t<isWrapper<T>>>
25 using NativeType =
typename T::NativeType;
View to a contiguous sequence of objects, similar to std::span in C++20.
constexpr size_t size() const noexcept
constexpr pointer data() const noexcept
constexpr NativeType * asNative(WrapperType *wrapper) noexcept
Cast Wrapper object pointers to native object pointers.
UA_String allocNativeString(std::string_view src)
Allocate UA_String from std::string_view.
T * copyArray(const T *src, size_t size, const UA_DataType &type)
auto * toNativeArray(Span< const T > array)
auto toNative(T value) noexcept
Client * asWrapper(UA_Client *client) noexcept
Convert native UA_Client pointer to its wrapper instance.
const UA_DataType & getDataType() noexcept