Coverage Report

Created: 2026-01-10 06:44

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/arduinojson/src/ArduinoJson/MsgPack/endianness.hpp
Line
Count
Source
1
// ArduinoJson - https://arduinojson.org
2
// Copyright © 2014-2025, 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
0
inline void swapBytes(uint8_t& a, uint8_t& b) {
13
0
  uint8_t t(a);
14
0
  a = b;
15
0
  b = t;
16
0
}
17
18
0
inline void fixEndianness(uint8_t* p, integral_constant<size_t, 8>) {
19
0
  swapBytes(p[0], p[7]);
20
0
  swapBytes(p[1], p[6]);
21
0
  swapBytes(p[2], p[5]);
22
0
  swapBytes(p[3], p[4]);
23
0
}
24
25
0
inline void fixEndianness(uint8_t* p, integral_constant<size_t, 4>) {
26
0
  swapBytes(p[0], p[3]);
27
0
  swapBytes(p[1], p[2]);
28
0
}
29
30
0
inline void fixEndianness(uint8_t* p, integral_constant<size_t, 2>) {
31
0
  swapBytes(p[0], p[1]);
32
0
}
33
34
0
inline void fixEndianness(uint8_t*, integral_constant<size_t, 1>) {}
35
36
template <typename T>
37
0
inline void fixEndianness(T& value) {
38
0
  fixEndianness(reinterpret_cast<uint8_t*>(&value),
39
0
                integral_constant<size_t, sizeof(T)>());
40
0
}
Unexecuted instantiation: void ArduinoJson::V742HB42::detail::fixEndianness<float>(float&)
Unexecuted instantiation: void ArduinoJson::V742HB42::detail::fixEndianness<double>(double&)
Unexecuted instantiation: void ArduinoJson::V742HB42::detail::fixEndianness<unsigned short>(unsigned short&)
Unexecuted instantiation: void ArduinoJson::V742HB42::detail::fixEndianness<unsigned int>(unsigned int&)
Unexecuted instantiation: void ArduinoJson::V742HB42::detail::fixEndianness<unsigned char>(unsigned char&)
Unexecuted instantiation: void ArduinoJson::V742HB42::detail::fixEndianness<signed char>(signed char&)
Unexecuted instantiation: void ArduinoJson::V742HB42::detail::fixEndianness<short>(short&)
Unexecuted instantiation: void ArduinoJson::V742HB42::detail::fixEndianness<int>(int&)
Unexecuted instantiation: void ArduinoJson::V742HB42::detail::fixEndianness<long>(long&)
Unexecuted instantiation: void ArduinoJson::V742HB42::detail::fixEndianness<unsigned long>(unsigned long&)
41
#else
42
template <typename T>
43
inline void fixEndianness(T&) {}
44
#endif
45
46
ARDUINOJSON_END_PRIVATE_NAMESPACE