LCOV - code coverage report
Current view: top level - usr/include/yaml-cpp - stlemitter.h (source / functions) Hit Total Coverage
Test: jami-coverage-filtered.info Lines: 16 16 100.0 %
Date: 2025-08-24 09:11:10 Functions: 7 7 100.0 %

          Line data    Source code
       1             : #ifndef STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
       2             : #define STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
       3             : 
       4             : #if defined(_MSC_VER) ||                                            \
       5             :     (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
       6             :      (__GNUC__ >= 4))  // GCC supports "pragma once" correctly since 3.4
       7             : #pragma once
       8             : #endif
       9             : 
      10             : #include <vector>
      11             : #include <list>
      12             : #include <set>
      13             : #include <map>
      14             : 
      15             : namespace YAML {
      16             : template <typename Seq>
      17        4544 : inline Emitter& EmitSeq(Emitter& emitter, const Seq& seq) {
      18        4544 :   emitter << BeginSeq;
      19        6227 :   for (const auto& v : seq)
      20        1683 :     emitter << v;
      21        4544 :   emitter << EndSeq;
      22        4544 :   return emitter;
      23             : }
      24             : 
      25             : template <typename T>
      26        1660 : inline Emitter& operator<<(Emitter& emitter, const std::vector<T>& v) {
      27        1660 :   return EmitSeq(emitter, v);
      28             : }
      29             : 
      30             : template <typename T>
      31             : inline Emitter& operator<<(Emitter& emitter, const std::list<T>& v) {
      32             :   return EmitSeq(emitter, v);
      33             : }
      34             : 
      35             : template <typename T>
      36        2884 : inline Emitter& operator<<(Emitter& emitter, const std::set<T>& v) {
      37        2884 :   return EmitSeq(emitter, v);
      38             : }
      39             : 
      40             : template <typename K, typename V>
      41         224 : inline Emitter& operator<<(Emitter& emitter, const std::map<K, V>& m) {
      42         224 :   emitter << BeginMap;
      43         896 :   for (const auto& v : m)
      44         672 :     emitter << Key << v.first << Value << v.second;
      45         224 :   emitter << EndMap;
      46         224 :   return emitter;
      47             : }
      48             : }
      49             : 
      50             : #endif  // STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66

Generated by: LCOV version 1.14