Commit eadd2ee4 authored by Victor Zverovich's avatar Victor Zverovich

Add FormatInt::data() and document members.

parent f43de4a4
...@@ -1408,6 +1408,11 @@ TEST(FormatterTest, Examples) { ...@@ -1408,6 +1408,11 @@ TEST(FormatterTest, Examples) {
ReportError("File not found: {0}") << path; ReportError("File not found: {0}") << path;
} }
TEST(FormatIntTest, Data) {
fmt::FormatInt format_int(42);
EXPECT_EQ("42", std::string(format_int.data(), format_int.size()));
}
TEST(FormatIntTest, FormatInt) { TEST(FormatIntTest, FormatInt) {
EXPECT_EQ("42", fmt::FormatInt(42).str()); EXPECT_EQ("42", fmt::FormatInt(42).str());
EXPECT_EQ(2, fmt::FormatInt(42).size()); EXPECT_EQ(2, fmt::FormatInt(42).size());
......
...@@ -1330,12 +1330,30 @@ class FormatInt { ...@@ -1330,12 +1330,30 @@ class FormatInt {
explicit FormatInt(unsigned long value) : str_(FormatDecimal(value)) {} explicit FormatInt(unsigned long value) : str_(FormatDecimal(value)) {}
explicit FormatInt(unsigned long long value) : str_(FormatDecimal(value)) {} explicit FormatInt(unsigned long long value) : str_(FormatDecimal(value)) {}
/**
Returns the number of characters written to the output buffer.
*/
std::size_t size() const { return buffer_ - str_ + BUFFER_SIZE - 1; }
/**
Returns a pointer to the output buffer content. No terminating null
character is appended.
*/
const char *data() const { return str_; }
/**
Returns a pointer to the output buffer content with terminating null
character appended.
*/
const char *c_str() const { const char *c_str() const {
buffer_[BUFFER_SIZE - 1] = '\0'; buffer_[BUFFER_SIZE - 1] = '\0';
return str_; return str_;
} }
/**
Returns the content of the output buffer as an `std::string`.
*/
std::string str() const { return std::string(str_, size()); } std::string str() const { return std::string(str_, size()); }
std::size_t size() const { return buffer_ - str_ + BUFFER_SIZE - 1; }
}; };
// Formats a decimal integer value writing into buffer and returns // Formats a decimal integer value writing into buffer and returns
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment