diff --git a/single_include/kompute/Kompute.hpp b/single_include/kompute/Kompute.hpp index f1cf7bd37..ebba78628 100755 --- a/single_include/kompute/Kompute.hpp +++ b/single_include/kompute/Kompute.hpp @@ -598,6 +598,8 @@ static const char* KOMPUTE_LOG_TAG = "KomputeLog"; #endif #include +#include +#include #include @@ -2368,3 +2370,37 @@ class Manager }; } // End namespace kp + +/** + * fmt fromater for kp::Tensor::TensorDataTypes. + */ +template <> struct fmt::formatter: formatter { + template + auto format(kp::Tensor::TensorDataTypes dt, FormatContext& ctx) { + std::string name = "unknown"; + switch (dt) { + case kp::Tensor::TensorDataTypes::eBool: name = "eBool"; break; + case kp::Tensor::TensorDataTypes::eDouble: name = "eDouble"; break; + case kp::Tensor::TensorDataTypes::eFloat: name = "eFloat"; break; + case kp::Tensor::TensorDataTypes::eInt: name = "eInt"; break; + case kp::Tensor::TensorDataTypes::eUnsignedInt: name = "eUnsignedInt"; break; + } + return formatter::format(name, ctx); + } +}; + +/** + * fmt fromater for kp::Tensor::TensorTypes. + */ +template <> struct fmt::formatter: formatter { + template + auto format(kp::Tensor::TensorTypes dt, FormatContext& ctx) { + std::string name = "unknown"; + switch (dt) { + case kp::Tensor::TensorTypes::eDevice: name = "eDevice"; break; + case kp::Tensor::TensorTypes::eHost: name = "eHost"; break; + case kp::Tensor::TensorTypes::eStorage: name = "eStorage"; break; + } + return formatter::format(name, ctx); + } +}; diff --git a/src/include/kompute/Tensor.hpp b/src/include/kompute/Tensor.hpp index 021ed2bd6..3b562564c 100644 --- a/src/include/kompute/Tensor.hpp +++ b/src/include/kompute/Tensor.hpp @@ -2,6 +2,8 @@ #pragma once #include "kompute/Core.hpp" +#include +#include namespace kp { @@ -339,3 +341,37 @@ class TensorT : public Tensor }; } // End namespace kp + +/** + * fmt fromater for kp::Tensor::TensorDataTypes. + */ +template <> struct fmt::formatter: formatter { + template + auto format(kp::Tensor::TensorDataTypes dt, FormatContext& ctx) { + std::string name = "unknown"; + switch (dt) { + case kp::Tensor::TensorDataTypes::eBool: name = "eBool"; break; + case kp::Tensor::TensorDataTypes::eDouble: name = "eDouble"; break; + case kp::Tensor::TensorDataTypes::eFloat: name = "eFloat"; break; + case kp::Tensor::TensorDataTypes::eInt: name = "eInt"; break; + case kp::Tensor::TensorDataTypes::eUnsignedInt: name = "eUnsignedInt"; break; + } + return formatter::format(name, ctx); + } +}; + +/** + * fmt fromater for kp::Tensor::TensorTypes. + */ +template <> struct fmt::formatter: formatter { + template + auto format(kp::Tensor::TensorTypes dt, FormatContext& ctx) { + std::string name = "unknown"; + switch (dt) { + case kp::Tensor::TensorTypes::eDevice: name = "eDevice"; break; + case kp::Tensor::TensorTypes::eHost: name = "eHost"; break; + case kp::Tensor::TensorTypes::eStorage: name = "eStorage"; break; + } + return formatter::format(name, ctx); + } +};