9 #ifndef LARDATAALG_UTILITIES_INTERVALS_FHICL_H
10 #define LARDATAALG_UTILITIES_INTERVALS_FHICL_H
18 #include "fhiclcpp/coding.h"
21 #include <string_view>
26 namespace util::quantities::concepts {
46 template <
typename... Args>
47 void decode(std::any
const& src, Interval<Args...>& iv);
61 template <
typename... Args>
62 void decode(std::any
const& src, Point<Args...>&
p);
76 template <
typename... Args>
77 ::fhicl::detail::ps_atom_t
encode(Interval<Args...>
const& iv);
90 template <
typename... Args>
91 ::fhicl::detail::ps_atom_t
encode(Point<Args...>
const& pt);
102 template <
typename... Args>
106 using interval_t =
Interval<Args...>;
107 using quantity_t =
typename interval_t::quantity_t;
111 iv = interval_t{ q };
117 template <
typename... Args>
122 using quantity_t =
typename point_t::quantity_t;
132 template <
typename... Args>
134 (Interval<Args...>
const& iv)
141 template <
typename... Args>
143 (Point<Args...>
const&
p)
152 #endif // LARDATAALG_UTILITIES_INTERVALS_FHICL_H
::fhicl::detail::ps_atom_t encode(Interval< Args...> const &iv)
Encodes a quantity interval into a FHiCL parameter set atom.
void decode(std::any const &src, Interval< Args...> &iv)
Decodes an interval.
Defines point and interval variables based on quantities.
Utilities to read and write quantities in FHiCL configuration.
decltype(auto) constexpr to_string(T &&obj)
ADL-aware version of std::to_string.
An interval (duration, length, distance) between two quantity points.
Functions pulling in STL customization if available.