Coverage Report

Created: 2024-09-08 06:19

/src/arduinojson/src/ArduinoJson/MsgPack/endianness.hpp
Line
Count
Source
1
// ArduinoJson - https://arduinojson.org
2
// Copyright © 2014-2024, Benoit BLANCHON
3
// MIT License
4
5
#pragma once
6
7
#include <ArduinoJson/Polyfills/type_traits.hpp>
8
9
ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE
10
11
#if ARDUINOJSON_LITTLE_ENDIAN
12
4.17k
inline void swapBytes(uint8_t& a, uint8_t& b) {
13
4.17k
  uint8_t t(a);
14
4.17k
  a = b;
15
4.17k
  b = t;
16
4.17k
}
17
18
590
inline void fixEndianness(uint8_t* p, integral_constant<size_t, 8>) {
19
590
  swapBytes(p[0], p[7]);
20
590
  swapBytes(p[1], p[6]);
21
590
  swapBytes(p[2], p[5]);
22
590
  swapBytes(p[3], p[4]);
23
590
}
24
25
789
inline void fixEndianness(uint8_t* p, integral_constant<size_t, 4>) {
26
789
  swapBytes(p[0], p[3]);
27
789
  swapBytes(p[1], p[2]);
28
789
}
29
30
237
inline void fixEndianness(uint8_t* p, integral_constant<size_t, 2>) {
31
237
  swapBytes(p[0], p[1]);
32
237
}
33
34
2.54k
inline void fixEndianness(uint8_t*, integral_constant<size_t, 1>) {}
35
36
template <typename T>
37
4.15k
inline void fixEndianness(T& value) {
38
4.15k
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
4.15k
                integral_constant<size_t, sizeof(T)>());
40
4.15k
}
void ArduinoJson::V710HB42::detail::fixEndianness<float>(float&)
Line
Count
Source
37
540
inline void fixEndianness(T& value) {
38
540
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
540
                integral_constant<size_t, sizeof(T)>());
40
540
}
void ArduinoJson::V710HB42::detail::fixEndianness<double>(double&)
Line
Count
Source
37
179
inline void fixEndianness(T& value) {
38
179
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
179
                integral_constant<size_t, sizeof(T)>());
40
179
}
void ArduinoJson::V710HB42::detail::fixEndianness<unsigned short>(unsigned short&)
Line
Count
Source
37
148
inline void fixEndianness(T& value) {
38
148
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
148
                integral_constant<size_t, sizeof(T)>());
40
148
}
void ArduinoJson::V710HB42::detail::fixEndianness<unsigned int>(unsigned int&)
Line
Count
Source
37
141
inline void fixEndianness(T& value) {
38
141
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
141
                integral_constant<size_t, sizeof(T)>());
40
141
}
void ArduinoJson::V710HB42::detail::fixEndianness<unsigned char>(unsigned char&)
Line
Count
Source
37
1.06k
inline void fixEndianness(T& value) {
38
1.06k
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
1.06k
                integral_constant<size_t, sizeof(T)>());
40
1.06k
}
void ArduinoJson::V710HB42::detail::fixEndianness<signed char>(signed char&)
Line
Count
Source
37
1.47k
inline void fixEndianness(T& value) {
38
1.47k
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
1.47k
                integral_constant<size_t, sizeof(T)>());
40
1.47k
}
void ArduinoJson::V710HB42::detail::fixEndianness<short>(short&)
Line
Count
Source
37
89
inline void fixEndianness(T& value) {
38
89
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
89
                integral_constant<size_t, sizeof(T)>());
40
89
}
void ArduinoJson::V710HB42::detail::fixEndianness<int>(int&)
Line
Count
Source
37
108
inline void fixEndianness(T& value) {
38
108
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
108
                integral_constant<size_t, sizeof(T)>());
40
108
}
void ArduinoJson::V710HB42::detail::fixEndianness<long>(long&)
Line
Count
Source
37
228
inline void fixEndianness(T& value) {
38
228
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
228
                integral_constant<size_t, sizeof(T)>());
40
228
}
void ArduinoJson::V710HB42::detail::fixEndianness<unsigned long>(unsigned long&)
Line
Count
Source
37
183
inline void fixEndianness(T& value) {
38
183
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
183
                integral_constant<size_t, sizeof(T)>());
40
183
}
41
#else
42
template <typename T>
43
inline void fixEndianness(T&) {}
44
#endif
45
46
ARDUINOJSON_END_PRIVATE_NAMESPACE