LCOV - code coverage report
Current view: top level - boost/capy - cond.hpp (source / functions) Coverage Total Hit
Test: coverage_filtered.info Lines: 100.0 % 3 3
Test Date: 2026-01-15 18:27:21 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_COND_HPP
      11              : #define BOOST_CAPY_COND_HPP
      12              : 
      13              : #include <boost/capy/detail/config.hpp>
      14              : #include <boost/system/error_category.hpp>
      15              : #include <boost/system/is_error_condition_enum.hpp>
      16              : 
      17              : namespace boost {
      18              : namespace capy {
      19              : 
      20              : /** Portable error conditions.
      21              : 
      22              :     Use these conditions for portable error comparisons:
      23              : 
      24              :   - Return `error::eof` when originating an eof error.
      25              :       Check `ec == cond::eof` to portably test for eof.
      26              : 
      27              :   - Return the platform canceled error when originating canceled.
      28              :       Check `ec == cond::canceled` to portably test for cancellation.
      29              : */
      30              : enum class cond
      31              : {
      32              :     eof = 1,
      33              :     canceled = 2
      34              : };
      35              : 
      36              : //-----------------------------------------------
      37              : 
      38              : } // capy
      39              : 
      40              : namespace system {
      41              : template<>
      42              : struct is_error_condition_enum<
      43              :     ::boost::capy::cond>
      44              : {
      45              :     static bool const value = true;
      46              : };
      47              : } // system
      48              : 
      49              : namespace capy {
      50              : 
      51              : //-----------------------------------------------
      52              : 
      53              : namespace detail {
      54              : 
      55              : struct BOOST_SYMBOL_VISIBLE
      56              :     cond_cat_type
      57              :     : system::error_category
      58              : {
      59              :     BOOST_CAPY_DECL const char* name(
      60              :         ) const noexcept override;
      61              :     BOOST_CAPY_DECL std::string message(
      62              :         int) const override;
      63              :     BOOST_CAPY_DECL char const* message(
      64              :         int, char*, std::size_t
      65              :             ) const noexcept override;
      66              :     BOOST_CAPY_DECL bool equivalent(
      67              :         system::error_code const& ec,
      68              :         int condition) const noexcept override;
      69              :     BOOST_SYSTEM_CONSTEXPR cond_cat_type()
      70              :         : error_category(0x2f7a9b3c4e8d1a05)
      71              :     {
      72              :     }
      73              : };
      74              : 
      75              : BOOST_CAPY_DECL extern cond_cat_type cond_cat;
      76              : 
      77              : } // detail
      78              : 
      79              : //-----------------------------------------------
      80              : 
      81              : inline
      82              : BOOST_SYSTEM_CONSTEXPR
      83              : system::error_condition
      84           10 : make_error_condition(
      85              :     cond ev) noexcept
      86              : {
      87           10 :     return system::error_condition{
      88              :         static_cast<std::underlying_type<
      89              :             cond>::type>(ev),
      90           10 :         detail::cond_cat};
      91              : }
      92              : 
      93              : } // capy
      94              : } // boost
      95              : 
      96              : #endif
        

Generated by: LCOV version 2.3