Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <string>
7 :
8 : #include "DataStructures/DataBox/Tag.hpp"
9 : #include "Options/String.hpp"
10 : #include "Utilities/PrettyType.hpp"
11 :
12 : /// \cond
13 : enum class Verbosity;
14 : /// \endcond
15 :
16 : /// \ingroup LoggingGroup
17 : /// Items related to logging
18 1 : namespace logging {
19 0 : namespace OptionTags {
20 : /// \ingroup OptionTagsGroup
21 : /// \ingroup LoggingGroup
22 : template <typename OptionsGroup>
23 0 : struct Verbosity {
24 0 : using type = ::Verbosity;
25 0 : static constexpr Options::String help{"Verbosity"};
26 0 : using group = OptionsGroup;
27 : };
28 : } // namespace OptionTags
29 :
30 0 : namespace Tags {
31 : /// \ingroup LoggingGroup
32 : /// \brief Tag for putting `::Verbosity` in a DataBox.
33 : template <typename OptionsGroup>
34 1 : struct Verbosity : db::SimpleTag {
35 0 : using type = ::Verbosity;
36 0 : static std::string name() {
37 : return "Verbosity(" + pretty_type::name<OptionsGroup>() + ")";
38 : }
39 :
40 0 : using option_tags = tmpl::list<OptionTags::Verbosity<OptionsGroup>>;
41 0 : static constexpr bool pass_metavariables = false;
42 0 : static ::Verbosity create_from_options(const ::Verbosity& verbosity) {
43 : return verbosity;
44 : }
45 : };
46 : } // namespace Tags
47 : } // namespace logging
|