Genericized intrin parsing from Ambience

This commit is contained in:
2026-04-04 00:44:48 -04:00
parent 7516da6aa8
commit 1c0f028de0
3 changed files with 175 additions and 36 deletions
@@ -3,6 +3,7 @@
#include <cstdint>
#include <memory>
#include <optional>
#include <stdexcept>
#include <user/deviceAttachmentSpec.h>
@@ -34,7 +35,7 @@ struct ParamComparator
}
};
inline ParamComparator parsePcloudAmbienceParamComparator(
inline std::optional<ParamComparator> parseOptionalPcloudAmbienceParamComparator(
const std::shared_ptr<device::DeviceAttachmentSpec>& deviceAttachmentSpec)
{
const auto& params = deviceAttachmentSpec->qualeIfaceApiParams;
@@ -53,24 +54,21 @@ inline ParamComparator parsePcloudAmbienceParamComparator(
if (gtVal != kParamNotSpecified)
{
return ParamComparator{
return std::optional<ParamComparator>(ParamComparator{
.op = OP_CMP_GT,
.value = static_cast<uint32_t>(gtVal),
};
});
}
if (ltVal != kParamNotSpecified)
{
return ParamComparator{
return std::optional<ParamComparator>(ParamComparator{
.op = OP_CMP_LT,
.value = static_cast<uint32_t>(ltVal),
};
});
}
return ParamComparator{
.op = OP_CMP_LT,
.value = 8U,
};
return std::nullopt;
}
} // namespace stim_buff