1#ifndef BF063C31_B18E_470A_8642_C43A4F1B49FC 
    2#define BF063C31_B18E_470A_8642_C43A4F1B49FC 
   43constexpr bool is_good_handle(
const std::coroutine_handle<>& h) 
noexcept 
   45    return h && !h.done();
 
   59constexpr bool is_ready(
const std::coroutine_handle<>& h) 
noexcept 
   61    return !h || h.done();
 
   72inline void check_coroutine(
const std::coroutine_handle<>& h)
 
   75        throw bad_task(
"task is empty or destroyed");
 
Custom exception classes for coroutine handling.