GCC Code Coverage Report


Directory: Fw/Types/
File: StringTemplate.hpp
Date: 2026-09-03 21:15:04
Exec Total Coverage
Lines: 16 16 100.0%
Functions: 18 18 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 11 times.
20 StringTemplate() : StringBase() { *this = ""; }
25
26
1/1
✓ Branch 11 taken 5 times.
10 StringTemplate(const StringTemplate& src) : StringBase() { *this = src; }
27
28
1/1
✓ Branch 11 taken 2 times.
2 StringTemplate(const ConstStringBase& src) : StringBase() { *this = src; }
29
30
1/1
✓ Branch 11 taken 8 times.
16 StringTemplate(const char* src) : StringBase() { *this = src; }
31
32 52 ~StringTemplate() {}
33
34 10 StringTemplate& operator=(const StringTemplate& src) {
35 10 (void)StringBase::operator=(src);
36 10 return *this;
37 }
38
39 2 StringTemplate& operator=(const ConstStringBase& src) {
40 2 (void)StringBase::operator=(src);
41 2 return *this;
42 }
43
44 52 StringTemplate& operator=(const char* src) {
45 52 (void)StringBase::operator=(src);
46 52 return *this;
47 }
48
49 292 const char* toChar() const { return this->m_buf; }
50
51 214 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