75.86% Lines (22/29) 100.00% Functions (3/3)
TLA Baseline Branch
Line Hits Code Line Hits Code
1   // 1   //
2   // Copyright (c) 2025 Vinnie Falco (vinnie.falco@gmail.com) 2   // Copyright (c) 2025 Vinnie Falco (vinnie.falco@gmail.com)
3   // 3   //
4   // Distributed under the Boost Software License, Version 1.0. (See accompanying 4   // Distributed under the Boost Software License, Version 1.0. (See accompanying
5   // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5   // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6   // 6   //
7   // Official repository: https://github.com/cppalliance/capy 7   // Official repository: https://github.com/cppalliance/capy
8   // 8   //
9   9  
10   #include <boost/capy/cond.hpp> 10   #include <boost/capy/cond.hpp>
11   #include <boost/capy/error.hpp> 11   #include <boost/capy/error.hpp>
12   #include <system_error> 12   #include <system_error>
13   13  
14   namespace boost { 14   namespace boost {
15   namespace capy { 15   namespace capy {
16   16  
17   namespace detail { 17   namespace detail {
18   18  
19   const char* 19   const char*
HITCBC 20   1 cond_cat_type:: 20   1 cond_cat_type::
21   name() const noexcept 21   name() const noexcept
22   { 22   {
HITCBC 23   1 return "boost.capy"; 23   1 return "boost.capy";
24   } 24   }
25   25  
26   std::string 26   std::string
HITCBC 27   3 cond_cat_type:: 27   4 cond_cat_type::
28   message(int code) const 28   message(int code) const
29   { 29   {
HITCBC 30   3 switch(static_cast<cond>(code)) 30   4 switch(static_cast<cond>(code))
31   { 31   {
HITCBC 32   3 case cond::eof: return "end of file"; 32   3 case cond::eof: return "end of file";
HITCBC 33   3 case cond::canceled: return "operation canceled"; 33   3 case cond::canceled: return "operation canceled";
MISUBC 34   case cond::stream_truncated: return "stream truncated"; 34   case cond::stream_truncated: return "stream truncated";
HITCBC 35   3 case cond::not_found: return "not found"; 35   3 case cond::not_found: return "not found";
HITGNC   36 + 3 case cond::timeout: return "operation timed out";
MISUBC 36   default: 37   default:
MISUBC 37   return "unknown"; 38   return "unknown";
38   } 39   }
39   } 40   }
40   41  
41   bool 42   bool
HITCBC 42   1391 cond_cat_type:: 43   1381 cond_cat_type::
43   equivalent( 44   equivalent(
44   std::error_code const& ec, 45   std::error_code const& ec,
45   int condition) const noexcept 46   int condition) const noexcept
46   { 47   {
HITCBC 47   1391 switch(static_cast<cond>(condition)) 48   1381 switch(static_cast<cond>(condition))
48   { 49   {
HITCBC 49   1372 case cond::eof: 50   1357 case cond::eof:
HITCBC 50   1372 return ec == capy::error::eof; 51   1357 return ec == capy::error::eof;
51   52  
HITCBC 52   5 case cond::canceled: 53   8 case cond::canceled:
HITCBC 53   5 if(ec == capy::error::canceled) 54   8 if(ec == capy::error::canceled)
HITGBC 54   return true; 55   2 return true;
HITCBC 55   5 if(ec == std::errc::operation_canceled) 56   6 if(ec == std::errc::operation_canceled)
HITCBC 56   2 return true; 57   2 return true;
HITCBC 57   3 return false; 58   4 return false;
58   59  
MISUBC 59   case cond::stream_truncated: 60   case cond::stream_truncated:
MISUBC 60   return ec == capy::error::stream_truncated; 61   return ec == capy::error::stream_truncated;
61   62  
HITCBC 62   14 case cond::not_found: 63   14 case cond::not_found:
HITCBC 63   14 return ec == capy::error::not_found; 64   14 return ec == capy::error::not_found;
64   65  
HITGNC   66 + 2 case cond::timeout:
HITGNC   67 + 2 return ec == capy::error::timeout;
  68 +
MISUBC 65   default: 69   default:
MISUBC 66   return false; 70   return false;
67   } 71   }
68   } 72   }
69   73  
70   //----------------------------------------------- 74   //-----------------------------------------------
71   75  
72   // msvc 14.0 has a bug that warns about inability 76   // msvc 14.0 has a bug that warns about inability
73   // to use constexpr construction here, even though 77   // to use constexpr construction here, even though
74   // there's no constexpr construction 78   // there's no constexpr construction
75 - #if defined(_MSC_VER) && _MSC_VER <= 1900 79 + #if BOOST_CAPY_WORKAROUND(_MSC_VER, <= 1900)
76 - # pragma warning( push ) 80 + BOOST_CAPY_MSVC_WARNING_PUSH
77 - # pragma warning( disable : 4592 ) 81 + BOOST_CAPY_MSVC_WARNING_DISABLE(4592)
78   #endif 82   #endif
79   83  
80   #if defined(__cpp_constinit) && __cpp_constinit >= 201907L 84   #if defined(__cpp_constinit) && __cpp_constinit >= 201907L
81   constinit cond_cat_type cond_cat; 85   constinit cond_cat_type cond_cat;
82   #else 86   #else
83   cond_cat_type cond_cat; 87   cond_cat_type cond_cat;
84   #endif 88   #endif
85   89  
86 - #if defined(_MSC_VER) && _MSC_VER <= 1900 90 + #if BOOST_CAPY_WORKAROUND(_MSC_VER, <= 1900)
87 - # pragma warning( pop ) 91 + BOOST_CAPY_MSVC_WARNING_POP
88   #endif 92   #endif
89   93  
90   } // detail 94   } // detail
91   95  
92   } // capy 96   } // capy
93   } // boost 97   } // boost