#ifndef ABSL_FLAGS_INTERNAL_USAGE_H_
#define ABSL_FLAGS_INTERNAL_USAGE_H_
#include <iosfwd>
#include <ostream>
#include <string>
#include "absl/base/config.h"
#include "absl/flags/commandlineflag.h"
#include "absl/strings/string_view.h"
namespace absl {
ABSL_NAMESPACE_BEGIN
namespace flags_internal {
enum class HelpFormat {
kHumanReadable,
};
enum class HelpMode {
kNone,
kImportant,
kShort,
kFull,
kPackage,
kMatch,
kVersion,
kOnlyCheckArgs
};
void FlagHelp(std::ostream& out, const CommandLineFlag& flag,
HelpFormat format = HelpFormat::kHumanReadable);
void FlagsHelp(std::ostream& out, absl::string_view filter,
HelpFormat format, absl::string_view program_usage_message);
HelpMode HandleUsageFlags(std::ostream& out,
absl::string_view program_usage_message);
void MaybeExit(HelpMode mode);
std::string GetFlagsHelpMatchSubstr();
HelpMode GetFlagsHelpMode();
HelpFormat GetFlagsHelpFormat();
void SetFlagsHelpMatchSubstr(absl::string_view);
void SetFlagsHelpMode(HelpMode);
void SetFlagsHelpFormat(HelpFormat);
bool DeduceUsageFlags(absl::string_view name, absl::string_view value);
} ABSL_NAMESPACE_END
}
#endif