#ifndef ABSL_STRINGS_INTERNAL_STR_FORMAT_EXTENSION_H_
#define ABSL_STRINGS_INTERNAL_STR_FORMAT_EXTENSION_H_
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <ostream>
#include <string>
#include "absl/base/config.h"
#include "absl/strings/internal/str_format/output.h"
#include "absl/strings/string_view.h"
namespace absl {
ABSL_NAMESPACE_BEGIN
enum class FormatConversionChar : uint8_t;
enum class FormatConversionCharSet : uint64_t;
enum class LengthMod : std::uint8_t { … };
namespace str_format_internal {
class FormatRawSinkImpl { … };
class FormatSinkImpl { … };
enum class Flags : uint8_t { … };
constexpr Flags operator|(Flags a, Flags b) { … }
constexpr bool FlagsContains(Flags haystack, Flags needle) { … }
std::string FlagsToString(Flags v);
inline std::ostream& operator<<(std::ostream& os, Flags v) { … }
#define ABSL_INTERNAL_CONVERSION_CHARS_EXPAND_(X_VAL, X_SEP) …
struct FormatConversionCharInternal { … };
inline FormatConversionChar FormatConversionCharFromChar(char c) { … }
inline bool FormatConversionCharIsUpper(FormatConversionChar c) { … }
inline bool FormatConversionCharIsFloat(FormatConversionChar c) { … }
inline char FormatConversionCharToChar(FormatConversionChar c) { … }
inline std::ostream& operator<<(std::ostream& os, FormatConversionChar v) { … }
struct FormatConversionSpecImplFriend;
class FormatConversionSpecImpl { … };
struct FormatConversionSpecImplFriend final { … };
constexpr FormatConversionCharSet FormatConversionCharSetUnion(
FormatConversionCharSet a) { … }
template <typename... CharSet>
constexpr FormatConversionCharSet FormatConversionCharSetUnion(
FormatConversionCharSet a, CharSet... rest) { … }
constexpr uint64_t FormatConversionCharToConvInt(FormatConversionChar c) { … }
constexpr uint64_t FormatConversionCharToConvInt(char conv) { … }
constexpr FormatConversionCharSet FormatConversionCharToConvValue(char conv) { … }
struct FormatConversionCharSetInternal { … };
constexpr FormatConversionCharSet operator|(FormatConversionCharSet a,
FormatConversionCharSet b) { … }
constexpr FormatConversionCharSet ToFormatConversionCharSet(char c) { … }
constexpr FormatConversionCharSet ToFormatConversionCharSet(
FormatConversionCharSet c) { … }
template <typename T>
void ToFormatConversionCharSet(T) = delete;
constexpr bool Contains(FormatConversionCharSet set, char c) { … }
constexpr bool Contains(FormatConversionCharSet set,
FormatConversionCharSet c) { … }
constexpr bool Contains(FormatConversionCharSet set, FormatConversionChar c) { … }
inline size_t Excess(size_t used, size_t capacity) { … }
}
ABSL_NAMESPACE_END
}
#endif