navicat-keygen/navicat-patcher/ResourceTraitsKeystone.hpp
2019-09-28 00:49:34 +08:00

34 lines
740 B
C++

#pragma once
#include <keystone/keystone.h>
struct KeystoneHandleTraits {
using HandleType = ks_engine*;
static inline const HandleType InvalidValue = nullptr;
[[nodiscard]]
static bool IsValid(const HandleType& Handle) noexcept {
return Handle != InvalidValue;
}
static void Releasor(const HandleType& Handle) noexcept {
ks_close(Handle);
}
};
struct KeystoneMallocTraits {
using HandleType = uint8_t*;
static inline const HandleType InvalidValue = nullptr;
[[nodiscard]]
static bool IsValid(const HandleType& Handle) noexcept {
return Handle != InvalidValue;
}
static void Releasor(const HandleType& Handle) noexcept {
ks_free(Handle);
}
};