96.67% Lines (29/30) 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   5 cond_cat_type:: 27   5 cond_cat_type::
28   message(int code) const 28   message(int code) const
29   { 29   {
HITCBC 30   5 switch(static_cast<cond>(code)) 30   5 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";
HITCBC 34   3 case cond::stream_truncated: return "stream truncated"; 34   3 case cond::stream_truncated: return "stream truncated";
HITCBC 35   3 case cond::timeout: return "operation timed out"; 35   3 case cond::timeout: return "operation timed out";
HITCBC 36   1 default: 36   1 default:
HITCBC 37   2 return "unknown"; 37   2 return "unknown";
38   } 38   }
39   } 39   }
40   40  
41   bool 41   bool
HITCBC 42   913 cond_cat_type:: 42   913 cond_cat_type::
43   equivalent( 43   equivalent(
44   std::error_code const& ec, 44   std::error_code const& ec,
45   int condition) const noexcept 45   int condition) const noexcept
46   { 46   {
HITCBC 47   913 switch(static_cast<cond>(condition)) 47   913 switch(static_cast<cond>(condition))
48   { 48   {
HITCBC 49   785 case cond::eof: 49   785 case cond::eof:
HITCBC 50   785 return ec == capy::error::eof; 50   785 return ec == capy::error::eof;
51   51  
HITCBC 52   123 case cond::canceled: 52   123 case cond::canceled:
HITCBC 53   123 if(ec == capy::error::canceled) 53   123 if(ec == capy::error::canceled)
HITCBC 54   56 return true; 54   39 return true;
HITCBC 55   67 if(ec == std::errc::operation_canceled) 55   84 if(ec == std::errc::operation_canceled)
HITCBC 56   2 return true; 56   2 return true;
HITCBC 57   65 return false; 57   82 return false;
58   58  
HITCBC 59   1 case cond::stream_truncated: 59   1 case cond::stream_truncated:
HITCBC 60   1 return ec == capy::error::stream_truncated; 60   1 return ec == capy::error::stream_truncated;
61   61  
HITCBC 62   3 case cond::timeout: 62   3 case cond::timeout:
HITCBC 63   3 if(ec == capy::error::timeout) 63   3 if(ec == capy::error::timeout)
HITCBC 64   1 return true; 64   1 return true;
HITCBC 65   2 if(ec == std::errc::timed_out) 65   2 if(ec == std::errc::timed_out)
HITCBC 66   2 return true; 66   2 return true;
MISUBC 67   return false; 67   return false;
68   68  
HITCBC 69   1 default: 69   1 default:
HITCBC 70   1 return false; 70   1 return false;
71   } 71   }
72   } 72   }
73   73  
74   //----------------------------------------------- 74   //-----------------------------------------------
75   75  
76   // msvc 14.0 has a bug that warns about inability 76   // msvc 14.0 has a bug that warns about inability
77   // to use constexpr construction here, even though 77   // to use constexpr construction here, even though
78   // there's no constexpr construction 78   // there's no constexpr construction
79   #if BOOST_CAPY_WORKAROUND(_MSC_VER, <= 1900) 79   #if BOOST_CAPY_WORKAROUND(_MSC_VER, <= 1900)
80   BOOST_CAPY_MSVC_WARNING_PUSH 80   BOOST_CAPY_MSVC_WARNING_PUSH
81   BOOST_CAPY_MSVC_WARNING_DISABLE(4592) 81   BOOST_CAPY_MSVC_WARNING_DISABLE(4592)
82   #endif 82   #endif
83   83  
84   #if defined(__cpp_constinit) && __cpp_constinit >= 201907L 84   #if defined(__cpp_constinit) && __cpp_constinit >= 201907L
85   constinit cond_cat_type cond_cat; 85   constinit cond_cat_type cond_cat;
86   #else 86   #else
87   cond_cat_type cond_cat; 87   cond_cat_type cond_cat;
88   #endif 88   #endif
89   89  
90   #if BOOST_CAPY_WORKAROUND(_MSC_VER, <= 1900) 90   #if BOOST_CAPY_WORKAROUND(_MSC_VER, <= 1900)
91   BOOST_CAPY_MSVC_WARNING_POP 91   BOOST_CAPY_MSVC_WARNING_POP
92   #endif 92   #endif
93   93  
94   } // detail 94   } // detail
95   95  
96   } // capy 96   } // capy
97   } // boost 97   } // boost