From a95acc4d382cbb4937097e7fa2f6526974a26fcc Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 4 Jun 2026 18:14:19 +0200 Subject: core: add basic libmagic abstraction skeleton --- cabinet/magic.hpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 cabinet/magic.hpp (limited to 'cabinet/magic.hpp') diff --git a/cabinet/magic.hpp b/cabinet/magic.hpp new file mode 100644 index 0000000..3ad6dfa --- /dev/null +++ b/cabinet/magic.hpp @@ -0,0 +1,36 @@ +#ifndef CABINET_MAGIC_HPP +#define CABINET_MAGIC_HPP + +#include + +#include + +namespace cab +{ + + struct magic + { + enum struct flags : decltype(MAGIC_NONE) + { + none = MAGIC_NONE, + print_debug = MAGIC_DEBUG, + follow_symlinks = MAGIC_SYMLINK, + inspect_compressed = MAGIC_COMPRESS, + inspect_devices = MAGIC_DEVICES, + }; + + magic(flags flags); + ~magic(); + + private: + magic_t m_cookie{}; + }; + + constexpr auto operator|(magic::flags lhs, magic::flags rhs) noexcept -> magic::flags + { + return static_cast(std::to_underlying(lhs) | std::to_underlying(rhs)); + } + +} // namespace cab + +#endif -- cgit v1.2.3