14template <
typename T,
typename = std::enable_if_t<std::is_enum_v<T>>>
15[[nodiscard]]
inline auto toNative(T value)
noexcept {
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 WrapperType * asWrapper(NativeType *native) noexcept
Cast native object pointers to Wrapper object pointers.
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
const UA_DataType & getDataType() noexcept