GCC Code Coverage Report


Directory: ./
File: Fw/Types/StringTemplate.hpp
Date: 2026-09-23 21:11:01
Exec Total Coverage
Lines: 16 16 100.0%
Functions: 47 47 100.0%
Branches: 4 4 100.0%

Line Branch Exec Source
1 // ======================================================================
2 // @file StringTemplate.hpp
3 // @author Rob Bocchino
4 // @brief A string template parameterized by size
5 // ======================================================================
6
7 #ifndef FW_STRING_TEMPLATE_HPP
8 #define FW_STRING_TEMPLATE_HPP
9
10 #include <Fw/FPrimeBasicTypes.hpp>
11
12 #include "Fw/Types/StringBase.hpp"
13
14 namespace Fw {
15
16 template <Fw::StringBase::SizeType size>
17 class StringTemplate final : public StringBase {
18 public:
19 enum {
20 STRING_SIZE = size,
21 SERIALIZED_SIZE = STATIC_SERIALIZED_SIZE(STRING_SIZE),
22 };
23
24
1/1
✓ Branch 11 taken 19391838 times.
38550022 StringTemplate() : StringBase() { *this = ""; }
25
26
1/1
✓ Branch 11 taken 69474 times.
69714 StringTemplate(const StringTemplate& src) : StringBase() { *this = src; }
27
28
1/1
✓ Branch 11 taken 44264 times.
45390 StringTemplate(const ConstStringBase& src) : StringBase() { *this = src; }
29
30
1/1
✓ Branch 11 taken 79264 times.
140886 StringTemplate(const char* src) : StringBase() { *this = src; }
31
32 39169680 ~StringTemplate() {}
33
34 191403 StringTemplate& operator=(const StringTemplate& src) {
35 191403 (void)StringBase::operator=(src);
36 191403 return *this;
37 }
38
39 47330 StringTemplate& operator=(const ConstStringBase& src) {
40 47330 (void)StringBase::operator=(src);
41 47330 return *this;
42 }
43
44 39178608 StringTemplate& operator=(const char* src) {
45 39178608 (void)StringBase::operator=(src);
46 39178608 return *this;
47 }
48
49 27306100 const char* toChar() const { return this->m_buf; }
50
51 40149568 StringBase::SizeType getCapacity() const { return sizeof this->m_buf; }
52
53 private:
54 char m_buf[BUFFER_SIZE(size)];
55 };
56 } // namespace Fw
57
58 #endif
59