libTriton
version 1.0 build 1592
Loading...
Searching...
No Matches
src
libtriton
includes
triton
coreUtils.hpp
Go to the documentation of this file.
1
2
/*
3
** Copyright (C) - Triton
4
**
5
** This program is under the terms of the Apache License 2.0.
6
*/
7
8
#ifndef TRITON_CORE_UTIL_H
9
#define TRITON_CORE_UTIL_H
10
11
#include <sstream>
12
#include <string>
13
#include <type_traits>
14
15
#include <triton/config.hpp>
16
#include <
triton/dllexport.hpp
>
17
#include <
triton/tritonTypes.hpp
>
18
19
20
22
namespace
triton
{
29
namespace
utils {
37
template
<
typename
T>
38
inline
std::string
toString
(
const
T& obj) {
39
std::stringstream ss;
40
ss << obj;
41
return
ss.str();
42
}
43
45
TRITON_EXPORT
void
fromUintToBuffer
(
triton::uint80
value,
triton::uint8
* buffer);
46
48
TRITON_EXPORT
void
fromUintToBuffer
(
triton::uint128
value,
triton::uint8
* buffer);
49
51
TRITON_EXPORT
void
fromUintToBuffer
(
triton::uint256
value,
triton::uint8
* buffer);
52
54
TRITON_EXPORT
void
fromUintToBuffer
(
triton::uint512
value,
triton::uint8
* buffer);
55
57
template
<
typename
T>
58
constexpr
T
cast
(
const
triton::uint512
& value) {
59
return
static_cast<
T
>
(value);
60
}
61
63
template
<
typename
T>
64
constexpr
T
cast
(
const
triton::uint80
& value) {
65
return
static_cast<
T
>
(value);
66
}
67
69
template
<
typename
T> T
cast
(
const
triton::uint8
* buffer) {
70
// We want to always trigger the static assert when this function is defined (use with a type without specialization)
71
// so we have to set the value to false with dependency on T type.
72
static_assert
(not std::is_same<T, T>::value,
"cast have no implementation for this type"
);
73
return
{};
74
}
75
76
template
<> TRITON_EXPORT
triton::uint80
cast
(
const
triton::uint8
* buffer);
77
template
<> TRITON_EXPORT
triton::uint128
cast
(
const
triton::uint8
* buffer);
78
template
<> TRITON_EXPORT
triton::uint256
cast
(
const
triton::uint8
* buffer);
79
template
<> TRITON_EXPORT
triton::uint512
cast
(
const
triton::uint8
* buffer);
80
81
template
<> TRITON_EXPORT
triton::uint80
cast
(
const
triton::uint512
& value);
82
template
<> TRITON_EXPORT
triton::uint512
cast
(
const
triton::uint80
& value);
83
85
};
87
};
88
89
#endif
/* TRITON_CORE_UTIL_H */
math::wide_integer::uintwide_t
Definition
uintwide_t.h:1274
dllexport.hpp
triton::uint8
std::uint8_t uint8
unisgned 8-bits
Definition
tritonTypes.hpp:33
triton::utils::fromUintToBuffer
TRITON_EXPORT void fromUintToBuffer(triton::uint80 value, triton::uint8 *buffer)
Inject the value into the buffer. Make sure that the buffer contains at least 10 allocated bytes.
Definition
coreUtils.cpp:16
triton::utils::cast
constexpr T cast(const triton::uint512 &value)
Casts an triton::uint512 to T.
Definition
coreUtils.hpp:58
triton::utils::toString
std::string toString(const T &obj)
Converts an object to a string.
Definition
coreUtils.hpp:38
triton
The Triton namespace.
Definition
architecture.cpp:27
tritonTypes.hpp
Generated by
1.10.0