Rename builder methods

This commit is contained in:
Jeremy Rifkin 2025-02-02 16:58:22 -06:00
parent f0a9e12e88
commit b2180ae797
No known key found for this signature in database
GPG Key ID: 19AA8270105E8EB4
5 changed files with 46 additions and 46 deletions

View File

@ -21,24 +21,24 @@ namespace cpptrace {
formatter& operator=(formatter&&); formatter& operator=(formatter&&);
formatter& operator=(const formatter&); formatter& operator=(const formatter&);
formatter& set_header(std::string); formatter& header(std::string);
enum class color_mode { enum class color_mode {
always, always,
none, none,
automatic, automatic,
}; };
formatter& set_color_mode(color_mode); formatter& colors(color_mode);
enum class address_mode { enum class address_mode {
raw, raw,
object, object,
none, none,
}; };
formatter& set_address_mode(address_mode); formatter& addresses(address_mode);
formatter& set_snippets(bool); formatter& snippets(bool);
formatter& set_snippet_context(int); formatter& snippet_context(int);
formatter& include_column(bool); formatter& columns(bool);
formatter& show_filtered_frames(bool); formatter& filtered_frame_placeholders(bool);
formatter& set_filter(std::function<bool(const stacktrace_frame&)>); formatter& filter(std::function<bool(const stacktrace_frame&)>);
std::string format(const stacktrace_frame&) const; std::string format(const stacktrace_frame&) const;
std::string format(const stacktrace_frame&, bool color) const; std::string format(const stacktrace_frame&, bool color) const;

View File

@ -183,7 +183,7 @@ namespace cpptrace {
namespace detail { namespace detail {
const formatter& get_default_snippet_formatter() { const formatter& get_default_snippet_formatter() {
static formatter snippet_formatter = formatter{}.set_snippets(true); static formatter snippet_formatter = formatter{}.snippets(true);
return snippet_formatter; return snippet_formatter;
} }
} }

View File

@ -26,28 +26,28 @@ namespace cpptrace {
} options; } options;
public: public:
void set_header(std::string header) { void header(std::string header) {
options.header = std::move(header); options.header = std::move(header);
} }
void set_color_mode(formatter::color_mode mode) { void colors(formatter::color_mode mode) {
options.color = mode; options.color = mode;
} }
void set_address_mode(formatter::address_mode mode) { void addresses(formatter::address_mode mode) {
options.addresses = mode; options.addresses = mode;
} }
void set_snippets(bool snippets) { void snippets(bool snippets) {
options.snippets = snippets; options.snippets = snippets;
} }
void set_snippet_context(int lines) { void snippet_context(int lines) {
options.context_lines = lines; options.context_lines = lines;
} }
void include_column(bool columns) { void columns(bool columns) {
options.columns = columns; options.columns = columns;
} }
void show_filtered_frames(bool show) { void filtered_frame_placeholders(bool show) {
options.show_filtered_frames = show; options.show_filtered_frames = show;
} }
void set_filter(std::function<bool(const stacktrace_frame&)> filter) { void filter(std::function<bool(const stacktrace_frame&)> filter) {
options.filter = filter; options.filter = filter;
} }
@ -246,36 +246,36 @@ namespace cpptrace {
return *this; return *this;
} }
formatter& formatter::set_header(std::string header) { formatter& formatter::header(std::string header) {
pimpl->set_header(std::move(header)); pimpl->header(std::move(header));
return *this; return *this;
} }
formatter& formatter::set_color_mode(color_mode mode) { formatter& formatter::colors(color_mode mode) {
pimpl->set_color_mode(mode); pimpl->colors(mode);
return *this; return *this;
} }
formatter& formatter::set_address_mode(address_mode mode) { formatter& formatter::addresses(address_mode mode) {
pimpl->set_address_mode(mode); pimpl->addresses(mode);
return *this; return *this;
} }
formatter& formatter::set_snippets(bool snippets) { formatter& formatter::snippets(bool snippets) {
pimpl->set_snippets(snippets); pimpl->snippets(snippets);
return *this; return *this;
} }
formatter& formatter::set_snippet_context(int lines) { formatter& formatter::snippet_context(int lines) {
pimpl->set_snippet_context(lines); pimpl->snippet_context(lines);
return *this; return *this;
} }
formatter& formatter::include_column(bool columns) { formatter& formatter::columns(bool columns) {
pimpl->include_column(columns); pimpl->columns(columns);
return *this; return *this;
} }
formatter& formatter::show_filtered_frames(bool show) { formatter& formatter::filtered_frame_placeholders(bool show) {
pimpl->show_filtered_frames(show); pimpl->filtered_frame_placeholders(show);
return *this; return *this;
} }
formatter& formatter::set_filter(std::function<bool(const stacktrace_frame&)> filter) { formatter& formatter::filter(std::function<bool(const stacktrace_frame&)> filter) {
pimpl->set_filter(std::move(filter)); pimpl->filter(std::move(filter));
return *this; return *this;
} }

View File

@ -30,7 +30,7 @@ namespace cpptrace {
CPPTRACE_FORCE_NO_INLINE void print_terminate_trace() { CPPTRACE_FORCE_NO_INLINE void print_terminate_trace() {
try { // try/catch can never be hit but it's needed to prevent TCO try { // try/catch can never be hit but it's needed to prevent TCO
formatter{} formatter{}
.set_header("Stack trace to reach terminate handler (most recent call first):") .header("Stack trace to reach terminate handler (most recent call first):")
.print(std::cerr, generate_trace(1)); .print(std::cerr, generate_trace(1));
} catch(...) { } catch(...) {
if(!detail::should_absorb_trace_exceptions()) { if(!detail::should_absorb_trace_exceptions()) {

View File

@ -53,7 +53,7 @@ TEST(FormatterTest, Inlines) {
TEST(FormatterTest, Header) { TEST(FormatterTest, Header) {
auto formatter = cpptrace::formatter{} auto formatter = cpptrace::formatter{}
.set_header("Stack trace:"); .header("Stack trace:");
auto res = split(formatter.format(make_test_stacktrace()), "\n"); auto res = split(formatter.format(make_test_stacktrace()), "\n");
EXPECT_THAT( EXPECT_THAT(
res, res,
@ -68,7 +68,7 @@ TEST(FormatterTest, Header) {
TEST(FormatterTest, NoColumn) { TEST(FormatterTest, NoColumn) {
auto formatter = cpptrace::formatter{} auto formatter = cpptrace::formatter{}
.include_column(false); .columns(false);
auto res = split(formatter.format(make_test_stacktrace()), "\n"); auto res = split(formatter.format(make_test_stacktrace()), "\n");
EXPECT_THAT( EXPECT_THAT(
res, res,
@ -83,7 +83,7 @@ TEST(FormatterTest, NoColumn) {
TEST(FormatterTest, ObjectAddresses) { TEST(FormatterTest, ObjectAddresses) {
auto formatter = cpptrace::formatter{} auto formatter = cpptrace::formatter{}
.set_address_mode(cpptrace::formatter::address_mode::object); .addresses(cpptrace::formatter::address_mode::object);
auto res = split(formatter.format(make_test_stacktrace()), "\n"); auto res = split(formatter.format(make_test_stacktrace()), "\n");
EXPECT_THAT( EXPECT_THAT(
res, res,
@ -103,7 +103,7 @@ TEST(FormatterTest, Snippets) {
trace.frames.push_back({0x1, 0x1001, {line}, {20}, __FILE__, "foo()", false}); trace.frames.push_back({0x1, 0x1001, {line}, {20}, __FILE__, "foo()", false});
trace.frames.push_back({0x2, 0x1002, {line + 1}, {20}, __FILE__, "foo()", false}); trace.frames.push_back({0x2, 0x1002, {line + 1}, {20}, __FILE__, "foo()", false});
auto formatter = cpptrace::formatter{} auto formatter = cpptrace::formatter{}
.set_snippets(true); .snippets(true);
auto res = split(formatter.format(trace), "\n"); auto res = split(formatter.format(trace), "\n");
EXPECT_THAT( EXPECT_THAT(
res, res,
@ -134,10 +134,10 @@ TEST(FormatterTest, Snippets) {
line + 1 line + 1
), ),
cpptrace::microfmt::format(" {}: auto formatter = cpptrace::formatter{{}}", line + 2), cpptrace::microfmt::format(" {}: auto formatter = cpptrace::formatter{{}}", line + 2),
cpptrace::microfmt::format(" {}: .set_snippets(true);", line + 3) cpptrace::microfmt::format(" {}: .snippets(true);", line + 3)
) )
); );
formatter.set_snippet_context(1); formatter.snippet_context(1);
res = split(formatter.format(trace), "\n"); res = split(formatter.format(trace), "\n");
EXPECT_THAT( EXPECT_THAT(
res, res,
@ -172,7 +172,7 @@ TEST(FormatterTest, Snippets) {
TEST(FormatterTest, Colors) { TEST(FormatterTest, Colors) {
auto formatter = cpptrace::formatter{} auto formatter = cpptrace::formatter{}
.set_color_mode(cpptrace::formatter::color_mode::always); .colors(cpptrace::formatter::color_mode::always);
auto res = split(formatter.format(make_test_stacktrace()), "\n"); auto res = split(formatter.format(make_test_stacktrace()), "\n");
EXPECT_THAT( EXPECT_THAT(
res, res,
@ -187,7 +187,7 @@ TEST(FormatterTest, Colors) {
TEST(FormatterTest, Filtering) { TEST(FormatterTest, Filtering) {
auto formatter = cpptrace::formatter{} auto formatter = cpptrace::formatter{}
.set_filter([] (const cpptrace::stacktrace_frame& frame) -> bool { .filter([] (const cpptrace::stacktrace_frame& frame) -> bool {
return frame.filename.find("foo.cpp") != std::string::npos; return frame.filename.find("foo.cpp") != std::string::npos;
}); });
auto res = split(formatter.format(make_test_stacktrace()), "\n"); auto res = split(formatter.format(make_test_stacktrace()), "\n");
@ -204,10 +204,10 @@ TEST(FormatterTest, Filtering) {
TEST(FormatterTest, DontShowFilteredFrames) { TEST(FormatterTest, DontShowFilteredFrames) {
auto formatter = cpptrace::formatter{} auto formatter = cpptrace::formatter{}
.set_filter([] (const cpptrace::stacktrace_frame& frame) -> bool { .filter([] (const cpptrace::stacktrace_frame& frame) -> bool {
return frame.filename.find("foo.cpp") != std::string::npos; return frame.filename.find("foo.cpp") != std::string::npos;
}) })
.show_filtered_frames(false); .filtered_frame_placeholders(false);
auto res = split(formatter.format(make_test_stacktrace()), "\n"); auto res = split(formatter.format(make_test_stacktrace()), "\n");
EXPECT_THAT( EXPECT_THAT(
res, res,
@ -221,7 +221,7 @@ TEST(FormatterTest, DontShowFilteredFrames) {
TEST(FormatterTest, MoveSemantics) { TEST(FormatterTest, MoveSemantics) {
auto formatter = cpptrace::formatter{} auto formatter = cpptrace::formatter{}
.set_filter([] (const cpptrace::stacktrace_frame& frame) -> bool { .filter([] (const cpptrace::stacktrace_frame& frame) -> bool {
return frame.filename.find("foo.cpp") != std::string::npos; return frame.filename.find("foo.cpp") != std::string::npos;
}); });
auto formatter2 = std::move(formatter); auto formatter2 = std::move(formatter);
@ -251,7 +251,7 @@ TEST(FormatterTest, MoveSemantics) {
TEST(FormatterTest, CopySemantics) { TEST(FormatterTest, CopySemantics) {
auto formatter = cpptrace::formatter{} auto formatter = cpptrace::formatter{}
.set_filter([] (const cpptrace::stacktrace_frame& frame) -> bool { .filter([] (const cpptrace::stacktrace_frame& frame) -> bool {
return frame.filename.find("foo.cpp") != std::string::npos; return frame.filename.find("foo.cpp") != std::string::npos;
}); });
auto formatter2 = formatter; auto formatter2 = formatter;