12namespace opcua::detail {
14template <
typename T,
typename = std::enable_if_t<std::is_enum_v<T>>>
15[[nodiscard]]
auto toNative(T value)
noexcept {
16 return static_cast<std::underlying_type_t<T>
>(value);
19[[nodiscard]]
inline auto toNative(std::string_view value) {
20 return allocNativeString(value);
23template <
typename T,
typename = std::enable_if_t<isWrapper<T>>>
24[[nodiscard]]
auto toNative(T&& value) {
25 using NativeType =
typename T::NativeType;
33 if constexpr (isWrapper<T>) {
Client * asWrapper(UA_Client *client) noexcept
Convert native UA_Client pointer to its wrapper instance.
Span(Container &) -> Span< typename Container::value_type >
constexpr NativeType * asNative(WrapperType *wrapper) noexcept
Cast Wrapper object pointers to native object pointers.
const UA_DataType & getDataType() noexcept