Rename builder methods
This commit is contained in:
parent
f0a9e12e88
commit
b2180ae797
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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()) {
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user