cuDDL
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
cuddl::Error Struct Reference

Error payload carried in Result on failure. More...

#include <error.hpp>

Public Member Functions

ErrorCategory category () const noexcept
 
const std::string & message () const noexcept
 
const CudaError * as_cuda () const noexcept
 
const InvalidArgumentError * as_invalid_argument () const noexcept
 
const ResourceError * as_resource () const noexcept
 

Static Public Member Functions

static Error cuda (cudaError_t code, std::source_location location=std::source_location::current())
 
static Error invalid_argument (std::string message)
 
static Error resource (std::string message)
 

Public Attributes

std::variant< CudaError, InvalidArgumentError, ResourceError > kind
 

Detailed Description

Error payload carried in Result on failure.

Definition at line 64 of file error.hpp.

Member Function Documentation

◆ as_cuda()

const CudaError * cuddl::Error::as_cuda ( ) const
inlinenoexcept

Definition at line 77 of file error.hpp.

77 {
78 return std::get_if<CudaError>(&kind);
79 }
std::variant< CudaError, InvalidArgumentError, ResourceError > kind
Definition error.hpp:65

◆ as_invalid_argument()

const InvalidArgumentError * cuddl::Error::as_invalid_argument ( ) const
inlinenoexcept

Definition at line 81 of file error.hpp.

81 {
82 return std::get_if<InvalidArgumentError>(&kind);
83 }

◆ as_resource()

const ResourceError * cuddl::Error::as_resource ( ) const
inlinenoexcept

Definition at line 85 of file error.hpp.

85 {
86 return std::get_if<ResourceError>(&kind);
87 }

◆ category()

ErrorCategory cuddl::Error::category ( ) const
inlinenoexcept

Definition at line 67 of file error.hpp.

67 {
68 return static_cast<ErrorCategory>(kind.index());
69 }
ErrorCategory
Error category for Result failures.
Definition error.hpp:57

◆ cuda()

static Error cuddl::Error::cuda ( cudaError_t  code,
std::source_location  location = std::source_location::current() 
)
inlinestatic

Definition at line 90 of file error.hpp.

90 {
91 const SourceLocation site = SourceLocation::from(location);
92 return Error{CudaError{
93 code,
94 site,
95 std::format("{}: {}", site.to_string(), cudaGetErrorString(code)),
96 }};
97 }
static SourceLocation from(std::source_location location)
Definition error.hpp:26
Here is the call graph for this function:
Here is the caller graph for this function:

◆ invalid_argument()

static Error cuddl::Error::invalid_argument ( std::string  message)
inlinestatic

Definition at line 99 of file error.hpp.

99 {
100 return Error{InvalidArgumentError{std::move(message)}};
101 }
const std::string & message() const noexcept
Definition error.hpp:71
Here is the call graph for this function:
Here is the caller graph for this function:

◆ message()

const std::string & cuddl::Error::message ( ) const
inlinenoexcept

Definition at line 71 of file error.hpp.

71 {
72 return std::visit(
73 [](const auto& error) -> const std::string& { return error.message; }, kind
74 );
75 }
Here is the caller graph for this function:

◆ resource()

static Error cuddl::Error::resource ( std::string  message)
inlinestatic

Definition at line 103 of file error.hpp.

103 {
104 return Error{ResourceError{std::move(message)}};
105 }
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ kind

std::variant<CudaError, InvalidArgumentError, ResourceError> cuddl::Error::kind

Definition at line 65 of file error.hpp.


The documentation for this struct was generated from the following file: