Juggler
Juggling algorithms and event processing using gaudi framework
Options.hpp
Go to the documentation of this file.
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2017 CERN for the benefit of the Acts project
4 //
5 // This Source Code Form is subject to the terms of the Mozilla Public
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
7 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 
9 #pragma once
10 
11 #include <iosfwd>
12 #include <optional>
13 #include <string>
14 #include <utility>
15 #include <vector>
16 
17 //namespace FW {
18 //namespace Options {
19 //
20 ///// Half open [lower,upper) interval type for user options.
21 /////
22 ///// A missing limit represents an unbounded upper or lower limit. With just
23 ///// one defined limit the interval is just a lower/upper bound; with both
24 ///// limits undefined, the interval is unbounded everywhere and thus contains
25 ///// all possible values.
26 /////
27 ///// This is intended as a utility type for the user options and not as a
28 ///// variable type for the configuration structs. Simple primitive types should
29 ///// be preferred there.
30 //struct Interval {
31 // std::optional<double> lower;
32 // std::optional<double> upper;
33 //};
34 //
35 ///// Extract an interval from an input of the form 'lower:upper'.
36 /////
37 ///// An input of the form `lower:` or `:upper` sets just one of the limits. Any
38 ///// other input leads to an unbounded interval. If the input is `:SECOND` the
39 /////
40 ///// @note The more common range notation uses `lower-upper` but the `-`
41 ///// separator complicates the parsing of negative values.
42 //std::istream& operator>>(std::istream& is, Interval& interval);
43 //
44 ///// Print an interval as `lower:upper`.
45 //std::ostream& operator<<(std::ostream& os, const Interval& interval);
46 //
47 ///// Extract an interval from an input of the form 'lower:upper'.
48 /////
49 ///// An input of the form `lower:` or `:upper` sets just one of the limits. Any
50 ///// other input leads to an unbounded interval. If the input is `:SECOND` the
51 /////
52 ///// @note The more common range notation uses `lower-upper` but the `-`
53 ///// separator complicates the parsing of negative values.
54 //std::istream& operator>>(std::istream& is, std::vector<Interval>& intervals);
55 //
56 ///// Print an interval as `lower:upper`.
57 //std::ostream& operator<<(std::ostream& os,
58 // const std::vector<Interval>& intervals);
59 //
60 //} // namespace Options
61 //} // namespace FW
62 //
63 //using read_series = std::vector<int>;
64 //using read_range = std::vector<double>;
65 //using read_strings = std::vector<std::string>;
66 //
67 //// Overloads must exist in the `std` namespace so ADL-lookup can find them.
68 //namespace std {
69 //
70 //std::ostream& operator<<(std::ostream& os, const read_series& vec);
71 //
72 //std::ostream& operator<<(std::ostream& os, const read_range& vec);
73 //
74 //std::ostream& operator<<(std::ostream& os, const read_strings& vec);
75 //
76 //} // namespace std