18#include <fmt/format.h>
19#include <fmt/ranges.h>
21#include <unordered_map>
51 std::vector<DoubleEdgeSignal>
left;
52 std::vector<DoubleEdgeSignal>
right;
58 std::unordered_map<int, R3B::MapBarSignal>
bars;
62 auto empty() const ->
bool {
return bars.empty(); };
75class fmt::formatter<
R3B::SingleEdgeSignal>
78 static constexpr auto parse(format_parse_context& ctx) {
return ctx.end(); }
79 template <
typename FmtContent>
82 return fmt::format_to(ctn.out(),
"{{fine: {}, coarse: {} }}", signal.
fine, signal.
coarse);
87class fmt::formatter<
R3B::DoubleEdgeSignal>
90 static constexpr auto parse(format_parse_context& ctx) {
return ctx.end(); }
91 template <
typename FmtContent>
94 return fmt::format_to(ctn.out(),
"{{leading: {}, trailing: {} }}", signal.
leading, signal.
trailing);
99class fmt::formatter<
R3B::MapBarSignal>
102 static constexpr auto parse(format_parse_context& ctx) {
return ctx.end(); }
103 template <
typename FmtContent>
106 return fmt::format_to(
107 ctn.out(),
"{{left: [{}], right: [{}] }}", fmt::join(signal.
left,
", "), fmt::join(signal.
left,
", "));
std::map< int, R3B::PaddleTamexMappedData > R3BPaddleTamexMappedDataContainer
1-based key number
std::map< int, R3B::PaddleTamexTrigMappedData > R3BPaddleTamexTrigDataContainer
1-based key number
R3B::PaddleTamexMappedData R3BPaddleTamexMappedData2
R3B::PaddleTamexTrigMappedData R3BPaddleTamexTrigMappedData
SingleEdgeSignal trailing
ClassDefNV(DoubleEdgeSignal, 1)
std::vector< DoubleEdgeSignal > right
auto get(R3B::Side side) const -> const auto &
void push_back(R3B::Side side, const DoubleEdgeSignal &signal)
std::vector< DoubleEdgeSignal > left
PaddleTamexMappedData()=default
void push_back(R3B::Side side, int bar_num, const R3B::DoubleEdgeSignal &signal)
auto empty() const -> bool
ClassDefNV(PaddleTamexMappedData, 1)
std::unordered_map< int, R3B::MapBarSignal > bars
bar number in a plane 1..50
R3B::SingleEdgeSignal signal
ClassDefNV(PaddleTamexTrigMappedData, 1)
ClassDefNV(SingleEdgeSignal, 2)