mirror of
https://github.com/catchorg/Catch2.git
synced 2024-12-22 19:33:29 +01:00
Use StringRef in XmLWriter when the text is not stored
This commit is contained in:
parent
1d04427fcd
commit
c7241bb76e
@ -267,18 +267,19 @@ namespace {
|
||||
return *this;
|
||||
}
|
||||
|
||||
XmlWriter& XmlWriter::writeAttribute( std::string const& name, std::string const& attribute ) {
|
||||
XmlWriter& XmlWriter::writeAttribute( StringRef name,
|
||||
StringRef attribute ) {
|
||||
if( !name.empty() && !attribute.empty() )
|
||||
m_os << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"';
|
||||
return *this;
|
||||
}
|
||||
|
||||
XmlWriter& XmlWriter::writeAttribute( std::string const& name, bool attribute ) {
|
||||
XmlWriter& XmlWriter::writeAttribute( StringRef name, bool attribute ) {
|
||||
m_os << ' ' << name << "=\"" << ( attribute ? "true" : "false" ) << '"';
|
||||
return *this;
|
||||
}
|
||||
|
||||
XmlWriter& XmlWriter::writeText( std::string const& text, XmlFormatting fmt) {
|
||||
XmlWriter& XmlWriter::writeText( StringRef text, XmlFormatting fmt ) {
|
||||
if( !text.empty() ){
|
||||
bool tagWasOpen = m_tagIsOpen;
|
||||
ensureTagClosed();
|
||||
@ -291,7 +292,7 @@ namespace {
|
||||
return *this;
|
||||
}
|
||||
|
||||
XmlWriter& XmlWriter::writeComment( std::string const& text, XmlFormatting fmt) {
|
||||
XmlWriter& XmlWriter::writeComment( StringRef text, XmlFormatting fmt ) {
|
||||
ensureTagClosed();
|
||||
if (shouldIndent(fmt)) {
|
||||
m_os << m_indent;
|
||||
@ -301,7 +302,7 @@ namespace {
|
||||
return *this;
|
||||
}
|
||||
|
||||
void XmlWriter::writeStylesheetRef( std::string const& url ) {
|
||||
void XmlWriter::writeStylesheetRef( StringRef url ) {
|
||||
m_os << R"(<?xml-stylesheet type="text/xsl" href=")" << url << R"("?>)" << '\n';
|
||||
}
|
||||
|
||||
|
@ -81,22 +81,32 @@ namespace Catch {
|
||||
|
||||
XmlWriter& endElement(XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);
|
||||
|
||||
XmlWriter& writeAttribute( std::string const& name, std::string const& attribute );
|
||||
//! The attribute content is XML-encoded
|
||||
XmlWriter& writeAttribute( StringRef name, StringRef attribute );
|
||||
|
||||
XmlWriter& writeAttribute( std::string const& name, bool attribute );
|
||||
//! Writes the attribute as "true/false"
|
||||
XmlWriter& writeAttribute( StringRef name, bool attribute );
|
||||
|
||||
//! The attribute value must provide op<<(ostream&, T). Resulting
|
||||
//! serialization is XML-encoded
|
||||
template<typename T>
|
||||
XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
|
||||
XmlWriter& writeAttribute( StringRef name, T const& attribute ) {
|
||||
ReusableStringStream rss;
|
||||
rss << attribute;
|
||||
return writeAttribute( name, rss.str() );
|
||||
// We need to explicitly convert the string to StringRef to
|
||||
// guarantee the right overload is picked
|
||||
return writeAttribute( name, StringRef(rss.str()) );
|
||||
}
|
||||
|
||||
XmlWriter& writeText( std::string const& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);
|
||||
XmlWriter& writeText( StringRef text,
|
||||
XmlFormatting fmt = XmlFormatting::Newline |
|
||||
XmlFormatting::Indent );
|
||||
|
||||
XmlWriter& writeComment(std::string const& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);
|
||||
XmlWriter& writeComment( StringRef text,
|
||||
XmlFormatting fmt = XmlFormatting::Newline |
|
||||
XmlFormatting::Indent );
|
||||
|
||||
void writeStylesheetRef( std::string const& url );
|
||||
void writeStylesheetRef( StringRef url );
|
||||
|
||||
XmlWriter& writeBlankLine();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user