Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-05 08:51:42

0001 // Copyright (c) 2017-2024, University of Cincinnati, developed by Henry Schreiner
0002 // under NSF AWARD 1414736 and by the respective contributors.
0003 // All rights reserved.
0004 //
0005 // SPDX-License-Identifier: BSD-3-Clause
0006 
0007 #pragma once
0008 
0009 // IWYU pragma: private, include "CLI/CLI.hpp"
0010 
0011 // [CLI11:public_includes:set]
0012 #include <algorithm>
0013 #include <cctype>
0014 #include <fstream>
0015 #include <iostream>
0016 #include <string>
0017 #include <utility>
0018 #include <vector>
0019 // [CLI11:public_includes:end]
0020 
0021 #include "App.hpp"
0022 #include "ConfigFwd.hpp"
0023 #include "StringTools.hpp"
0024 
0025 namespace CLI {
0026 // [CLI11:config_hpp:verbatim]
0027 namespace detail {
0028 
0029 std::string convert_arg_for_ini(const std::string &arg,
0030                                 char stringQuote = '"',
0031                                 char literalQuote = '\'',
0032                                 bool disable_multi_line = false);
0033 
0034 /// Comma separated join, adds quotes if needed
0035 std::string ini_join(const std::vector<std::string> &args,
0036                      char sepChar = ',',
0037                      char arrayStart = '[',
0038                      char arrayEnd = ']',
0039                      char stringQuote = '"',
0040                      char literalQuote = '\'');
0041 
0042 void clean_name_string(std::string &name, const std::string &keyChars);
0043 
0044 std::vector<std::string> generate_parents(const std::string &section, std::string &name, char parentSeparator);
0045 
0046 /// assuming non default segments do a check on the close and open of the segments in a configItem structure
0047 void checkParentSegments(std::vector<ConfigItem> &output, const std::string &currentSection, char parentSeparator);
0048 }  // namespace detail
0049 
0050 // [CLI11:config_hpp:end]
0051 }  // namespace CLI
0052 
0053 #ifndef CLI11_COMPILE
0054 #include "impl/Config_inl.hpp"  // IWYU pragma: export
0055 #endif