LCOV - code coverage report
Current view: top level - capy - error.hpp (source / functions) Coverage Total Hit
Test: coverage_remapped.info Lines: 100.0 % 3 3
Test Date: 2026-02-17 18:14:47 Functions: 100.0 % 1 1

           TLA  Line data    Source code
       1                 : //
       2                 : // Copyright (c) 2025 Vinnie Falco (vinnie.falco@gmail.com)
       3                 : //
       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)
       6                 : //
       7                 : // Official repository: https://github.com/cppalliance/capy
       8                 : //
       9                 : 
      10                 : #ifndef BOOST_CAPY_ERROR_HPP
      11                 : #define BOOST_CAPY_ERROR_HPP
      12                 : 
      13                 : #include <boost/capy/detail/config.hpp>
      14                 : #include <system_error>
      15                 : 
      16                 : namespace boost {
      17                 : namespace capy {
      18                 : 
      19                 : /** Error codes for capy I/O operations.
      20                 : 
      21                 :     These codes are produced by capy algorithms and I/O operations.
      22                 : 
      23                 :     @warning Callers must never compare received `error_code` values
      24                 :     directly against this enum. Always compare against the portable
      25                 :     @ref cond error conditions instead. These enum values are
      26                 :     implementation details subject to change.
      27                 : 
      28                 :     @see cond
      29                 : */
      30                 : enum class error
      31                 : {
      32                 :     /// End-of-stream reached. Compare with `cond::eof`.
      33                 :     eof = 1,
      34                 : 
      35                 :     /// Operation was cancelled. Compare with `cond::canceled`.
      36                 :     canceled,
      37                 : 
      38                 :     /// Internal test assertion failed.
      39                 :     test_failure,
      40                 : 
      41                 :     /// Peer closed connection without proper TLS shutdown.
      42                 :     /// Compare with `cond::stream_truncated`.
      43                 :     stream_truncated,
      44                 : 
      45                 :     /// Requested item was not found. Compare with `cond::not_found`.
      46                 :     not_found
      47                 : };
      48                 : 
      49                 : //-----------------------------------------------
      50                 : 
      51                 : } // capy
      52                 : } // boost
      53                 : 
      54                 : namespace std {
      55                 : template<>
      56                 : struct is_error_code_enum<
      57                 :     ::boost::capy::error>
      58                 :     : std::true_type {};
      59                 : } // std
      60                 : 
      61                 : namespace boost {
      62                 : namespace capy {
      63                 : 
      64                 : //-----------------------------------------------
      65                 : 
      66                 : namespace detail {
      67                 :  
      68                 : struct BOOST_CAPY_SYMBOL_VISIBLE
      69                 :     error_cat_type
      70                 :     : std::error_category
      71                 : {
      72                 :     BOOST_CAPY_DECL const char* name(
      73                 :         ) const noexcept override;
      74                 :     BOOST_CAPY_DECL std::string message(
      75                 :         int) const override;
      76                 :     constexpr error_cat_type() noexcept = default;
      77                 : };
      78                 : 
      79                 : BOOST_CAPY_DECL extern error_cat_type error_cat;
      80                 : 
      81                 : } // detail
      82                 : 
      83                 : //-----------------------------------------------
      84                 : 
      85                 : inline
      86                 : std::error_code
      87 HIT        2195 : make_error_code(
      88                 :     error ev) noexcept
      89                 : {
      90            2195 :     return std::error_code{
      91                 :         static_cast<std::underlying_type<
      92                 :             error>::type>(ev),
      93            2195 :         detail::error_cat};
      94                 : }
      95                 : 
      96                 : } // capy
      97                 : } // boost
      98                 : 
      99                 : #endif
        

Generated by: LCOV version 2.3