From 624c58682d93a969f6372ea37efec7a3ca53d655 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Sun, 5 Feb 2017 06:41:39 -0800 Subject: [PATCH] Simplify API --- fmt/format.cc | 6 +-- fmt/format.h | 96 +++++++++++++++++------------------ fmt/ostream.h | 6 +-- fmt/posix.h | 2 +- fmt/printf.h | 20 ++++---- fmt/time.h | 2 +- test/custom-formatter-test.cc | 6 +-- test/format-impl-test.cc | 4 +- test/format-test.cc | 10 ++-- test/ostream-test.cc | 7 ++- test/util-test.cc | 8 +-- 11 files changed, 82 insertions(+), 85 deletions(-) diff --git a/fmt/format.cc b/fmt/format.cc index eed7f915..3dd42e1a 100644 --- a/fmt/format.cc +++ b/fmt/format.cc @@ -465,7 +465,7 @@ template struct internal::BasicData; template void internal::FixedBuffer::grow(std::size_t); -template void internal::ArgMap::init(const format_args &args); +template void internal::ArgMap::init(const format_args &args); template void printf_context::format(writer &writer); @@ -479,11 +479,11 @@ template int internal::CharTraits::format_float( // Explicit instantiations for wchar_t. -template class basic_format_context; +template class basic_context; template void internal::FixedBuffer::grow(std::size_t); -template void internal::ArgMap::init(const wformat_args &args); +template void internal::ArgMap::init(const wformat_args &args); template void printf_context::format(wwriter &writer); diff --git a/fmt/format.h b/fmt/format.h index 93d4e0e8..742904f2 100644 --- a/fmt/format.h +++ b/fmt/format.h @@ -380,10 +380,10 @@ template class PrintfArgFormatter; template -class basic_format_context; +class basic_context; -typedef basic_format_context format_context; -typedef basic_format_context wformat_context; +typedef basic_context context; +typedef basic_context wcontext; /** \rst @@ -1369,8 +1369,8 @@ class basic_arg { } }; -typedef basic_arg format_arg; -typedef basic_arg wformat_arg; +typedef basic_arg format_arg; +typedef basic_arg wformat_arg; /** \rst @@ -1516,7 +1516,7 @@ inline typename std::enable_if>::type } // namespace internal template -class format_arg_store { +class arg_store { private: static const size_t NUM_ARGS = sizeof...(Args); @@ -1535,22 +1535,20 @@ class format_arg_store { public: static const uint64_t TYPES = internal::make_type(); - format_arg_store(const Args &... args) + arg_store(const Args &... args) : data_(Array{{internal::make_arg(args)...}}) {} const value_type *data() const { return data_.data(); } }; template -inline format_arg_store - make_xformat_args(const Args & ... args) { - return format_arg_store(args...); +inline arg_store make_args(const Args & ... args) { + return arg_store(args...); } template -inline format_arg_store - make_format_args(const Args & ... args) { - return format_arg_store(args...); +inline arg_store make_args(const Args & ... args) { + return arg_store(args...); } /** Formatting arguments. */ @@ -1614,7 +1612,7 @@ class basic_args { basic_args() : types_(0) {} template - basic_args(const format_arg_store &store) + basic_args(const arg_store &store) : types_(store.TYPES) { set_data(store.data()); } @@ -1627,8 +1625,8 @@ class basic_args { } }; -typedef basic_args format_args; -typedef basic_args wformat_args; +typedef basic_args format_args; +typedef basic_args wformat_args; enum Alignment { ALIGN_DEFAULT, ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER, ALIGN_NUMERIC @@ -1985,7 +1983,7 @@ inline void write(basic_writer &w, const Char *start, const Char *end) { } template -class format_context_base { +class context_base { private: const Char *ptr_; basic_args args_; @@ -1994,9 +1992,9 @@ class format_context_base { protected: typedef basic_arg format_arg; - format_context_base(const Char *format_str, basic_args args) + context_base(const Char *format_str, basic_args args) : ptr_(format_str), args_(args), next_arg_index_(0) {} - ~format_context_base() {} + ~context_base() {} basic_args args() const { return args_; } @@ -2042,7 +2040,7 @@ class format_context_base { template class ArgFormatter : public internal::ArgFormatterBase { private: - basic_format_context &ctx_; + basic_context &ctx_; typedef internal::ArgFormatterBase Base; @@ -2057,7 +2055,7 @@ class ArgFormatter : public internal::ArgFormatterBase { format specifier information for standard argument types. \endrst */ - ArgFormatter(basic_writer &writer, basic_format_context &ctx, + ArgFormatter(basic_writer &writer, basic_context &ctx, format_specs &spec) : internal::ArgFormatterBase(writer, spec), ctx_(ctx) {} @@ -2070,18 +2068,18 @@ class ArgFormatter : public internal::ArgFormatterBase { }; template -class basic_format_context : - public internal::format_context_base> { +class basic_context : + public internal::context_base> { public: /** The character type for the output. */ typedef Char char_type; private: - internal::ArgMap> map_; + internal::ArgMap> map_; - FMT_DISALLOW_COPY_AND_ASSIGN(basic_format_context); + FMT_DISALLOW_COPY_AND_ASSIGN(basic_context); - typedef internal::format_context_base> Base; + typedef internal::context_base> Base; typedef typename Base::format_arg format_arg; using Base::get_arg; @@ -2093,12 +2091,12 @@ class basic_format_context : public: /** \rst - Constructs a ``basic_format_context`` object. References to the arguments are + Constructs a ``basic_context`` object. References to the arguments are stored in the object so make sure they have appropriate lifetimes. \endrst */ - basic_format_context(const Char *format_str, - basic_args args) + basic_context(const Char *format_str, + basic_args args) : Base(format_str, args) {} // Parses argument id and returns corresponding argument. @@ -2141,7 +2139,7 @@ class SystemError : public internal::RuntimeError { */ template SystemError(int error_code, CStringRef message, const Args & ... args) { - init(error_code, message, make_format_args(args...)); + init(error_code, message, make_args(args...)); } ~SystemError() throw(); @@ -2349,7 +2347,7 @@ class basic_writer { } void vformat(BasicCStringRef format, - basic_args> args); + basic_args> args); /** \rst Writes formatted data. @@ -2377,7 +2375,7 @@ class basic_writer { */ template void format(BasicCStringRef format, const Args & ... args) { - vformat(format, make_xformat_args>(args...)); + vformat(format, make_args>(args...)); } void write(int value) { @@ -2978,7 +2976,7 @@ class WindowsError : public SystemError { */ template WindowsError(int error_code, CStringRef message, const Args & ... args) { - init(error_code, message, make_format_args(args...)); + init(error_code, message, make_args(args...)); } }; @@ -3002,7 +3000,7 @@ FMT_API void vprint_colored(Color c, CStringRef format, format_args args); template inline void print_colored(Color c, CStringRef format_str, const Args & ... args) { - vprint_colored(c, format_str, make_format_args(args...)); + vprint_colored(c, format_str, make_args(args...)); } inline std::string vformat(CStringRef format_str, format_args args) { @@ -3022,7 +3020,7 @@ inline std::string vformat(CStringRef format_str, format_args args) { */ template inline std::string format(CStringRef format_str, const Args & ... args) { - return vformat(format_str, make_format_args(args...)); + return vformat(format_str, make_args(args...)); } inline std::wstring vformat(WCStringRef format_str, wformat_args args) { @@ -3033,7 +3031,7 @@ inline std::wstring vformat(WCStringRef format_str, wformat_args args) { template inline std::wstring format(WCStringRef format_str, const Args & ... args) { - auto vargs = make_xformat_args(args...); + auto vargs = make_args(args...); return vformat(format_str, vargs); } @@ -3050,7 +3048,7 @@ FMT_API void vprint(std::FILE *f, CStringRef format_str, format_args args); */ template inline void print(std::FILE *f, CStringRef format_str, const Args & ... args) { - vprint(f, format_str, make_format_args(args...)); + vprint(f, format_str, make_args(args...)); } FMT_API void vprint(CStringRef format_str, format_args args); @@ -3066,7 +3064,7 @@ FMT_API void vprint(CStringRef format_str, format_args args); */ template inline void print(CStringRef format_str, const Args & ... args) { - vprint(format_str, make_format_args(args...)); + vprint(format_str, make_args(args...)); } /** @@ -3185,13 +3183,13 @@ inline void format_decimal(char *&buffer, T value) { \endrst */ template -inline internal::NamedArg arg(StringRef name, const T &arg) { - return internal::NamedArg(name, arg); +inline internal::NamedArg arg(StringRef name, const T &arg) { + return internal::NamedArg(name, arg); } template -inline internal::NamedArg arg(WStringRef name, const T &arg) { - return internal::NamedArg(name, arg); +inline internal::NamedArg arg(WStringRef name, const T &arg) { + return internal::NamedArg(name, arg); } // The following two functions are deleted intentionally to disable @@ -3338,8 +3336,8 @@ struct PrecisionHandler { } // namespace internal template -inline typename basic_format_context::format_arg - basic_format_context::get_arg( +inline typename basic_context::format_arg + basic_context::get_arg( BasicStringRef name, const char *&error) { if (this->check_no_auto_index(error)) { map_.init(this->args()); @@ -3351,8 +3349,8 @@ inline typename basic_format_context::format_arg } template -inline typename basic_format_context::format_arg - basic_format_context::parse_arg_id() { +inline typename basic_context::format_arg + basic_context::parse_arg_id() { const Char *&s = this->ptr(); if (!internal::is_name_start(*s)) { const char *error = 0; @@ -3507,7 +3505,7 @@ void do_format_arg(basic_writer &writer, basic_arg arg, template void vwrite(basic_writer &writer, BasicCStringRef format_str, basic_args args) { - basic_format_context ctx(format_str.c_str(), args); + basic_context ctx(format_str.c_str(), args); const Char *&s = ctx.ptr(); const Char *start = s; while (*s) { @@ -3532,7 +3530,7 @@ void vwrite(basic_writer &writer, BasicCStringRef format_str, template inline void basic_writer::vformat( BasicCStringRef format, - basic_args> args) { + basic_args> args) { vwrite>(*this, format, args); } } // namespace fmt @@ -3557,7 +3555,7 @@ struct UdlArg { const Char *str; template - NamedArg> operator=(T &&value) const { + NamedArg> operator=(T &&value) const { return {str, std::forward(value)}; } }; diff --git a/fmt/ostream.h b/fmt/ostream.h index c6eb17a5..040a185b 100644 --- a/fmt/ostream.h +++ b/fmt/ostream.h @@ -84,11 +84,11 @@ BasicStringRef format_value( // Formats a value. template void format_value(basic_writer &w, const T &value, - basic_format_context &ctx) { + basic_context &ctx) { internal::MemoryBuffer buffer; auto str = internal::format_value(buffer, value); do_format_arg< ArgFormatter >( - w, internal::make_arg< basic_format_context >(str), ctx); + w, internal::make_arg< basic_context >(str), ctx); } FMT_API void vprint(std::ostream &os, CStringRef format_str, format_args args); @@ -105,7 +105,7 @@ FMT_API void vprint(std::ostream &os, CStringRef format_str, format_args args); template inline void print(std::ostream &os, CStringRef format_str, const Args & ... args) { - vprint(os, format_str, make_format_args(args...)); + vprint(os, format_str, make_args(args...)); } } // namespace fmt diff --git a/fmt/posix.h b/fmt/posix.h index 4758a85b..19e80024 100644 --- a/fmt/posix.h +++ b/fmt/posix.h @@ -172,7 +172,7 @@ public: template inline void print(CStringRef format_str, const Args & ... args) { - vprint(format_str, make_format_args(args...)); + vprint(format_str, make_args(args...)); } }; diff --git a/fmt/printf.h b/fmt/printf.h index 09ed7762..2fa54d2f 100644 --- a/fmt/printf.h +++ b/fmt/printf.h @@ -103,7 +103,7 @@ class ArgConverter { bool is_signed = type_ == 'd' || type_ == 'i'; typedef typename internal::Conditional< is_same::value, U, T>::type TargetType; - typedef basic_format_context format_context; + typedef basic_context context; if (sizeof(TargetType) <= sizeof(int)) { // Extra casts are used to silence warnings. if (is_signed) { @@ -287,8 +287,8 @@ class PrintfArgFormatter : public internal::ArgFormatterBase { /** Formats an argument of a custom (user-defined) type. */ void operator()(internal::CustomValue c) { const Char format_str[] = {'}', '\0'}; - auto args = basic_args>(); - basic_format_context ctx(format_str, args); + auto args = basic_args>(); + basic_context ctx(format_str, args); c.format(this->writer(), c.value, &ctx); } }; @@ -297,14 +297,14 @@ class PrintfArgFormatter : public internal::ArgFormatterBase { template > class printf_context : - private internal::format_context_base< + private internal::context_base< Char, printf_context> { public: /** The character type for the output. */ typedef Char char_type; private: - typedef internal::format_context_base Base; + typedef internal::context_base Base; typedef typename Base::format_arg format_arg; typedef basic_format_specs format_specs; @@ -539,7 +539,7 @@ inline std::string vsprintf(CStringRef format, printf_args args) { */ template inline std::string sprintf(CStringRef format_str, const Args & ... args) { - return vsprintf(format_str, make_xformat_args>(args...)); + return vsprintf(format_str, make_args>(args...)); } inline std::wstring vsprintf( @@ -551,7 +551,7 @@ inline std::wstring vsprintf( template inline std::wstring sprintf(WCStringRef format_str, const Args & ... args) { - auto vargs = make_xformat_args>(args...); + auto vargs = make_args>(args...); return vsprintf(format_str, vargs); } @@ -568,7 +568,7 @@ FMT_API int vfprintf(std::FILE *f, CStringRef format, printf_args args); */ template inline int fprintf(std::FILE *f, CStringRef format_str, const Args & ... args) { - auto vargs = make_xformat_args>(args...); + auto vargs = make_args>(args...); return vfprintf(f, format_str, vargs); } @@ -587,7 +587,7 @@ inline int vprintf(CStringRef format, printf_args args) { */ template inline int printf(CStringRef format_str, const Args & ... args) { - return vprintf(format_str, make_xformat_args>(args...)); + return vprintf(format_str, make_args>(args...)); } inline int vfprintf(std::ostream &os, CStringRef format_str, printf_args args) { @@ -609,7 +609,7 @@ inline int vfprintf(std::ostream &os, CStringRef format_str, printf_args args) { template inline int fprintf(std::ostream &os, CStringRef format_str, const Args & ... args) { - auto vargs = make_xformat_args>(args...); + auto vargs = make_args>(args...); return vfprintf(os, format_str, vargs); } } // namespace fmt diff --git a/fmt/time.h b/fmt/time.h index f021a892..4f07fd00 100644 --- a/fmt/time.h +++ b/fmt/time.h @@ -15,7 +15,7 @@ namespace fmt { -void format_value(writer &w, const std::tm &tm, format_context &ctx) { +void format_value(writer &w, const std::tm &tm, context &ctx) { const char *&s = ctx.ptr(); if (*s == ':') ++s; diff --git a/test/custom-formatter-test.cc b/test/custom-formatter-test.cc index 95117c7c..526a9258 100644 --- a/test/custom-formatter-test.cc +++ b/test/custom-formatter-test.cc @@ -16,7 +16,7 @@ using fmt::PrintfArgFormatter; // rounded to 0. class CustomArgFormatter : public fmt::ArgFormatter { public: - CustomArgFormatter(fmt::writer &w, fmt::basic_format_context &ctx, + CustomArgFormatter(fmt::writer &w, fmt::basic_context &ctx, fmt::format_specs &s) : fmt::ArgFormatter(w, ctx, s) {} @@ -54,7 +54,7 @@ std::string custom_vformat(fmt::CStringRef format_str, fmt::format_args args) { template std::string custom_format(const char *format_str, const Args & ... args) { - auto va = fmt::make_format_args(args...); + auto va = fmt::make_args(args...); return custom_vformat(format_str, va); } @@ -72,7 +72,7 @@ std::string custom_vsprintf( template std::string custom_sprintf(const char *format_str, const Args & ... args) { - auto va = fmt::make_xformat_args(args...); + auto va = fmt::make_args(args...); return custom_vsprintf(format_str, va); } diff --git a/test/format-impl-test.cc b/test/format-impl-test.cc index 0c7c2ea8..c19329f7 100644 --- a/test/format-impl-test.cc +++ b/test/format-impl-test.cc @@ -57,9 +57,9 @@ struct ValueExtractor { TEST(FormatTest, ArgConverter) { using fmt::format_arg; fmt::LongLong value = std::numeric_limits::max(); - format_arg arg = fmt::internal::make_arg(value); + format_arg arg = fmt::internal::make_arg(value); visit(fmt::internal::ArgConverter< - fmt::LongLong, fmt::format_context>(arg, 'd'), arg); + fmt::LongLong, fmt::context>(arg, 'd'), arg); EXPECT_EQ(value, visit(ValueExtractor(), arg)); } diff --git a/test/format-test.cc b/test/format-test.cc index db9faef0..35a9e476 100644 --- a/test/format-test.cc +++ b/test/format-test.cc @@ -1366,7 +1366,7 @@ TEST(FormatterTest, FormatCStringRef) { EXPECT_EQ("test", format("{0}", CStringRef("test"))); } -void format_value(fmt::writer &w, const Date &d, fmt::format_context &) { +void format_value(fmt::writer &w, const Date &d, fmt::context &) { w.write(d.year()); w.write('-'); w.write(d.month()); @@ -1383,7 +1383,7 @@ TEST(FormatterTest, FormatCustom) { class Answer {}; template -void format_value(basic_writer &w, Answer, fmt::format_context &) { +void format_value(basic_writer &w, Answer, fmt::context &) { w.write("42"); } @@ -1575,7 +1575,7 @@ std::string vformat_message(int id, const char *format, fmt::format_args args) { template std::string format_message(int id, const char *format, const Args & ... args) { - auto va = fmt::make_format_args(args...); + auto va = fmt::make_args(args...); return vformat_message(id, format, va); } @@ -1643,7 +1643,7 @@ class MockArgFormatter : public fmt::internal::ArgFormatterBase { public: typedef fmt::internal::ArgFormatterBase Base; - MockArgFormatter(fmt::writer &w, fmt::format_context &ctx, + MockArgFormatter(fmt::writer &w, fmt::context &ctx, fmt::format_specs &s) : fmt::internal::ArgFormatterBase(w, s) { EXPECT_CALL(*this, call(42)); @@ -1663,7 +1663,7 @@ void custom_vformat(fmt::CStringRef format_str, fmt::format_args args) { template void custom_format(const char *format_str, const Args & ... args) { - auto va = fmt::make_format_args(args...); + auto va = fmt::make_args(args...); return custom_vformat(format_str, va); } diff --git a/test/ostream-test.cc b/test/ostream-test.cc index 73c8c053..af279b8f 100644 --- a/test/ostream-test.cc +++ b/test/ostream-test.cc @@ -59,17 +59,16 @@ TEST(OStreamTest, Enum) { } struct TestArgFormatter : fmt::ArgFormatter { - TestArgFormatter(fmt::writer &w, fmt::format_context &ctx, - fmt::format_specs &s) + TestArgFormatter(fmt::writer &w, fmt::context &ctx, fmt::format_specs &s) : fmt::ArgFormatter(w, ctx, s) {} }; TEST(OStreamTest, CustomArg) { fmt::MemoryWriter writer; - fmt::format_context ctx("}", fmt::format_args()); + fmt::context ctx("}", fmt::format_args()); fmt::format_specs spec; TestArgFormatter af(writer, ctx, spec); - visit(af, fmt::internal::make_arg(TestEnum())); + visit(af, fmt::internal::make_arg(TestEnum())); EXPECT_EQ("TestEnum", writer.str()); } diff --git a/test/util-test.cc b/test/util-test.cc index 7f931f78..e84415d8 100644 --- a/test/util-test.cc +++ b/test/util-test.cc @@ -69,7 +69,7 @@ struct Test {}; template void format_value(fmt::basic_writer &w, Test, - fmt::basic_format_context &) { + fmt::basic_context &) { w.write("test"); } @@ -487,7 +487,7 @@ VISIT_TYPE(float, double); #define CHECK_ARG_(Char, expected, value) { \ testing::StrictMock> visitor; \ EXPECT_CALL(visitor, visit(expected)); \ - fmt::visit(visitor, make_arg>(value)); \ + fmt::visit(visitor, make_arg>(value)); \ } #define CHECK_ARG(value) { \ @@ -570,12 +570,12 @@ TEST(UtilTest, CustomArg) { testing::Invoke([&](fmt::internal::CustomValue custom) { EXPECT_EQ(&test, custom.value); fmt::MemoryWriter w; - fmt::format_context ctx("}", fmt::format_args()); + fmt::context ctx("}", fmt::format_args()); custom.format(w, &test, &ctx); EXPECT_EQ("test", w.str()); return Visitor::Result(); })); - fmt::visit(visitor, make_arg(test)); + fmt::visit(visitor, make_arg(test)); } TEST(ArgVisitorTest, VisitInvalidArg) {