LCOV - code coverage report
Current view: top level - capy - error.hpp (source / functions) Coverage Total Hit
Test: coverage_filtered.info Lines: 100.0 % 3 3
Test Date: 2026-02-02 05:00:52 Functions: 100.0 % 1 1

            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         1381 : make_error_code(
      88              :     error ev) noexcept
      89              : {
      90         1381 :     return std::error_code{
      91              :         static_cast<std::underlying_type<
      92              :             error>::type>(ev),
      93         1381 :         detail::error_cat};
      94              : }
      95              : 
      96              : } // capy
      97              : } // boost
      98              : 
      99              : #endif
        

Generated by: LCOV version 2.3