File indexing completed on 2026-05-27 07:24:06
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011
0012 #include "detray/builders/detector_builder.hpp"
0013
0014
0015 #include <concepts>
0016 #include <string_view>
0017
0018 namespace detray::io::concepts {
0019
0020
0021 template <typename D, typename R>
0022 concept reader_backend =
0023 requires(const R rb, detector_builder<typename D::metadata> det_builder) {
0024 typename R::payload_type;
0025
0026 { R::tag } -> std::same_as<const std::string_view&>;
0027
0028 {
0029 R::template from_payload<D>(det_builder, typename R::payload_type())
0030 } -> std::same_as<void>;
0031 };
0032
0033
0034 template <typename D, typename W>
0035 concept writer_backend =
0036 requires(const W wb, D det, typename D::name_map names) {
0037 typename W::payload_type;
0038
0039 { W::tag } -> std::same_as<const std::string_view&>;
0040
0041 { W::to_payload(det, names) } -> std::same_as<typename W::payload_type>;
0042 };
0043
0044 }