16#ifndef LIEF_UTILS_HEADER
17#define LIEF_UTILS_HEADER
27inline uint64_t
align(uint64_t value, uint64_t align_on) {
31 const auto r = value % align_on;
33 return value + (align_on - r);
38inline uint64_t
align_down(uint64_t value, uint64_t align_on) {
42 const auto r = value % align_on;
70constexpr size_t operator ""_KB(
unsigned long long kbs)
75constexpr size_t operator ""_MB(
unsigned long long mbs)
77 return 1024LLU * 1024LLU * mbs;
80constexpr size_t operator ""_GB(
unsigned long long gbs)
82 return 1024LLU * 1024LLU * 1024LLU * gbs;
84LIEF_API std::string
u16tou8(
const std::u16string&
string,
bool remove_null_char =
false);
115 const uint8_t* buffer,
size_t size,
const std::string& title =
"",
116 const std::string& prefix =
"",
size_t limit = 0);
119 const std::string& prefix =
"",
size_t limit = 0)
121 return dump(data.data(), data.size(), title, prefix, limit);
124inline std::string
dump(
const std::vector<uint8_t>& data,
125 const std::string& title =
"",
126 const std::string& prefix =
"",
129 return dump(data.data(), data.size(), title, prefix, limit);
LIEF namespace.
Definition Abstract/Binary.hpp:36
std::string extended_version_info()
Details about the extended version.
uint64_t align(uint64_t value, uint64_t align_on)
Definition utils.hpp:27
tcb::span< ElementType, Extent > span
Definition span.hpp:22
uint64_t align_down(uint64_t value, uint64_t align_on)
Definition utils.hpp:38
std::string dump(const uint8_t *buffer, size_t size, const std::string &title="", const std::string &prefix="", size_t limit=0)
Hexdump the provided buffer.
uint64_t round< uint64_t >(uint64_t x)
Definition utils.hpp:56
result< std::string > demangle(const std::string &mangled)
Demangle the given input.
result< std::u16string > u8tou16(const std::string &string)
Convert a UTF-8 string to a UTF-16 one.
bool is_extended()
Whether this version of LIEF includes extended features.
std::string u16tou8(const std::u16string &string, bool remove_null_char=false)
Convert a UTF-16 string to a UTF-8 one.
constexpr T round(T x)
Definition utils.hpp:50
tl::expected< T, lief_errors > result
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:75
#define LIEF_API
Definition visibility.h:41