// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. #include #include #include namespace nb = nanobind; using namespace mscclpp; void register_error(nb::module_& m) { nb::enum_(m, "ErrorCode") .value("SystemError", ErrorCode::SystemError) .value("InternalError", ErrorCode::InternalError) .value("RemoteError", ErrorCode::RemoteError) .value("InvalidUsage", ErrorCode::InvalidUsage) .value("Timeout", ErrorCode::Timeout) .value("Aborted", ErrorCode::Aborted); nb::class_(m, "BaseError") .def(nb::init(), nb::arg("message"), nb::arg("errorCode")) .def("get_error_code", &BaseError::getErrorCode) .def("what", &BaseError::what); nb::class_(m, "Error") .def(nb::init(), nb::arg("message"), nb::arg("errorCode")) .def("get_error_code", &Error::getErrorCode); nb::class_(m, "SysError") .def(nb::init(), nb::arg("message"), nb::arg("errorCode")); nb::class_(m, "CudaError") .def(nb::init(), nb::arg("message"), nb::arg("errorCode")); nb::class_(m, "CuError") .def(nb::init(), nb::arg("message"), nb::arg("errorCode")); nb::class_(m, "IbError") .def(nb::init(), nb::arg("message"), nb::arg("errorCode")); }