add auto option for position invariance

This commit is contained in:
Samuliak 2025-01-23 14:50:14 +01:00
parent 7ad4d480cb
commit bc6fb816da
No known key found for this signature in database
8 changed files with 103 additions and 14 deletions

View file

@ -132,6 +132,14 @@ enum class BufferCacheMode
};
ENABLE_ENUM_ITERATORS(BufferCacheMode, BufferCacheMode::DevicePrivate, BufferCacheMode::Host);
enum class PositionInvariance
{
Auto,
False,
True,
};
ENABLE_ENUM_ITERATORS(PositionInvariance, PositionInvariance::False, PositionInvariance::True);
enum class CPUMode
{
SinglecoreInterpreter = 0,
@ -245,6 +253,21 @@ struct fmt::formatter<BufferCacheMode> : formatter<string_view> {
}
};
template <>
struct fmt::formatter<PositionInvariance> : formatter<string_view> {
template <typename FormatContext>
auto format(const PositionInvariance c, FormatContext &ctx) const {
string_view name;
switch (c)
{
case PositionInvariance::Auto: name = "auto"; break;
case PositionInvariance::False: name = "false"; break;
case PositionInvariance::True: name = "true"; break;
default: name = "unknown"; break;
}
return formatter<string_view>::format(name, ctx);
}
};
template <>
struct fmt::formatter<CPUMode> : formatter<string_view> {
template <typename FormatContext>
auto format(const CPUMode c, FormatContext &ctx) const {