Antares Simulator
Power System Simulator
MCYearAndTime.h
1 
2 /*
3  * Copyright 2007-2025, RTE (https://www.rte-france.com)
4  * See AUTHORS.txt
5  * SPDX-License-Identifier: MPL-2.0
6  * This file is part of Antares-Simulator,
7  * Adequacy and Performance assessment for interconnected energy networks.
8  *
9  * Antares_Simulator is free software: you can redistribute it and/or modify
10  * it under the terms of the Mozilla Public Licence 2.0 as published by
11  * the Mozilla Foundation, either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * Antares_Simulator is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * Mozilla Public Licence 2.0 for more details.
18  *
19  * You should have received a copy of the Mozilla Public Licence 2.0
20  * along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
21  */
22 
23 #pragma once
24 #include <fmt/format.h>
25 #include <ostream>
26 
27 namespace Antares::Optimization
28 {
33 {
34  enum class MCYear : unsigned int
35  {
36  };
37  MCYear mcYear;
38  unsigned int timestep;
39 };
40 
41 inline auto format_as(const MCYearAndTime::MCYear& mcyear)
42 {
43  return fmt::underlying(mcyear);
44 }
45 
46 inline std::ostream& operator<<(std::ostream& os, const MCYearAndTime::MCYear& mcYear)
47 {
48  os << static_cast<unsigned int>(mcYear);
49  return os;
50 }
51 
52 inline std::ostream& operator<<(std::ostream& os, const MCYearAndTime& st)
53 {
54  os << fmt::format("{{scenario: {}, timestep: {}}}", st.mcYear, st.timestep);
55  return os;
56 }
57 
58 } // namespace Antares::Optimization
Definition: MCYearAndTime.h:33