LCOV - code coverage report
Current view: top level - src/AH/PrintStream - PrintStream.hpp (source / functions) Coverage Total Hit
Test: 73449d9b107c772cf65493691543348214e5d5eb Lines: 100.0 % 5 5
Test Date: 2026-06-06 17:44:35 Functions: 100.0 % 3 3
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /**
       2              :  * @brief   [PrintStream library](https://github.com/tttapa/Arduino-PrintStream/blob/6a9e0d365be0b3d84187daa2a8a7bda8d541472e/src/PrintStream.h)
       3              :  */
       4              : 
       5              : #ifndef PrintStream_h
       6              : #define PrintStream_h
       7              : 
       8              : #include <AH/Arduino-Wrapper.h> // Print
       9              : #include <AH/Settings/NamespaceSettings.hpp>
      10              : 
      11              : BEGIN_AH_NAMESPACE
      12              : 
      13              : /// @addtogroup  AH_PrintStream
      14              : /// @{
      15              : 
      16              : typedef Print &manipulator(Print &);
      17              : 
      18              : Print &endl(Print &printer);
      19              : Print &flush(Print &printer);
      20              : Print &hex(Print &printer);
      21              : Print &bin(Print &printer);
      22              : Print &dec(Print &printer);
      23              : /* Print &oct(Print &printer); */
      24              : Print &boolalpha(Print &printer);
      25              : Print &noboolalpha(Print &printer);
      26              : Print &leadingzeros(Print &printer);
      27              : Print &noleadingzeros(Print &printer);
      28              : Print &uppercase(Print &printer);
      29              : Print &nouppercase(Print &printer);
      30              : Print &showbase(Print &printer);
      31              : Print &noshowbase(Print &printer);
      32              : 
      33              : Print &operator<<(Print &printer, const __FlashStringHelper *s);
      34              : #ifdef ARDUINO
      35              : Print &operator<<(Print &printer, const String &s);
      36              : #endif
      37              : Print &operator<<(Print &printer, const char s[]);
      38              : Print &operator<<(Print &printer, char c);
      39              : Print &operator<<(Print &printer, unsigned char c);
      40              : Print &operator<<(Print &printer, int i);
      41              : Print &operator<<(Print &printer, unsigned int i);
      42              : Print &operator<<(Print &printer, int8_t i);
      43              : Print &operator<<(Print &printer, long i);
      44              : Print &operator<<(Print &printer, unsigned long i);
      45              : Print &operator<<(Print &printer, float f);
      46              : Print &operator<<(Print &printer, double d);
      47              : Print &operator<<(Print &printer, const Printable &p);
      48              : Print &operator<<(Print &printer, bool b);
      49              : 
      50              : Print &operator<<(Print &printer, manipulator pf);
      51              : 
      52              : struct Setbase {
      53              :     uint8_t M_base;
      54              : };
      55              : Setbase setbase(uint8_t base);
      56              : Print &operator<<(Print &printer, Setbase f);
      57              : 
      58              : struct Setprecision {
      59              :     int M_n;
      60              : };
      61              : Setprecision setprecision(int n);
      62              : Print &operator<<(Print &printer, Setprecision f);
      63              : 
      64              : struct Setbytesep {
      65              :     char M_bytesep;
      66              : };
      67              : Setbytesep setbytesep(char bytesep);
      68              : Print &operator<<(Print &printer, Setbytesep f);
      69              : 
      70              : struct HexDump {
      71            2 :     HexDump(const uint8_t *data, size_t length) : data(data), length(length) {}
      72              :     template <size_t N>
      73              :     explicit HexDump(const uint8_t (&data)[N]) : HexDump {data, N} {}
      74              :     const uint8_t *data;
      75              :     size_t length;
      76              : };
      77              : 
      78              : Print &operator<<(Print &p, HexDump h);
      79              : 
      80              : /// @}
      81              : 
      82              : END_AH_NAMESPACE
      83              : 
      84              : #ifndef ARDUINO
      85              : 
      86              : #include <iomanip>
      87              : #include <iostream>
      88              : 
      89              : BEGIN_AH_NAMESPACE
      90              : 
      91              : // TODO: check conflicts between Arduino version and C++ STL version
      92              : using std::endl;
      93              : // using std::setbase;
      94              : // using std::setprecision;
      95              : using std::boolalpha;
      96              : using std::dec;
      97              : using std::flush;
      98              : using std::hex;
      99              : using std::noboolalpha;
     100              : using std::noshowbase;
     101              : using std::nouppercase;
     102              : using std::showbase;
     103              : using std::uppercase;
     104              : 
     105            2 : inline std::ostream &operator<<(std::ostream &os, uint8_t u) {
     106              :     // I'm lazy, I should probably implement one for uint8_t to get the leading
     107              :     // zeros right
     108            2 :     return os << static_cast<unsigned short>(u);
     109              : }
     110              : 
     111           48 : inline std::ostream &operator<<(std::ostream &os,
     112              :                                 const __FlashStringHelper *s) {
     113           48 :     return os << reinterpret_cast<const char *>(s);
     114              : }
     115              : 
     116              : std::ostream &operator<<(std::ostream &p, HexDump h);
     117              : 
     118              : END_AH_NAMESPACE
     119              : 
     120              : #endif
     121              : 
     122              : #include <Settings/NamespaceSettings.hpp>
     123              : 
     124              : BEGIN_CS_NAMESPACE
     125              : using AH::operator<<;
     126              : using AH::manipulator;
     127              : using AH::endl;
     128              : using AH::flush;
     129              : using AH::hex;
     130              : using AH::bin;
     131              : using AH::dec;
     132              : using AH::boolalpha;
     133              : using AH::noboolalpha;
     134              : using AH::leadingzeros;
     135              : using AH::noleadingzeros;
     136              : using AH::uppercase;
     137              : using AH::nouppercase;
     138              : using AH::showbase;
     139              : using AH::noshowbase;
     140              : using AH::setbase;
     141              : using AH::setprecision;
     142              : using AH::setbytesep;
     143              : END_CS_NAMESPACE
     144              : 
     145              : #endif // PrintStream_h
        

Generated by: LCOV version 2.4-beta