mirror of
https://github.com/catchorg/Catch2.git
synced 2025-10-20 08:55:40 +02:00
Add lifetime attributes to JSON/XML writers
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
#ifndef CATCH_JSONWRITER_HPP_INCLUDED
|
#ifndef CATCH_JSONWRITER_HPP_INCLUDED
|
||||||
#define CATCH_JSONWRITER_HPP_INCLUDED
|
#define CATCH_JSONWRITER_HPP_INCLUDED
|
||||||
|
|
||||||
|
#include <catch2/internal/catch_lifetimebound.hpp>
|
||||||
#include <catch2/internal/catch_reusable_string_stream.hpp>
|
#include <catch2/internal/catch_reusable_string_stream.hpp>
|
||||||
#include <catch2/internal/catch_stringref.hpp>
|
#include <catch2/internal/catch_stringref.hpp>
|
||||||
|
|
||||||
@@ -27,8 +28,8 @@ namespace Catch {
|
|||||||
|
|
||||||
class JsonValueWriter {
|
class JsonValueWriter {
|
||||||
public:
|
public:
|
||||||
JsonValueWriter( std::ostream& os );
|
JsonValueWriter( std::ostream& os CATCH_ATTR_LIFETIMEBOUND );
|
||||||
JsonValueWriter( std::ostream& os, std::uint64_t indent_level );
|
JsonValueWriter( std::ostream& os CATCH_ATTR_LIFETIMEBOUND, std::uint64_t indent_level );
|
||||||
|
|
||||||
JsonObjectWriter writeObject() &&;
|
JsonObjectWriter writeObject() &&;
|
||||||
JsonArrayWriter writeArray() &&;
|
JsonArrayWriter writeArray() &&;
|
||||||
@@ -62,8 +63,8 @@ namespace Catch {
|
|||||||
|
|
||||||
class JsonObjectWriter {
|
class JsonObjectWriter {
|
||||||
public:
|
public:
|
||||||
JsonObjectWriter( std::ostream& os );
|
JsonObjectWriter( std::ostream& os CATCH_ATTR_LIFETIMEBOUND );
|
||||||
JsonObjectWriter( std::ostream& os, std::uint64_t indent_level );
|
JsonObjectWriter( std::ostream& os CATCH_ATTR_LIFETIMEBOUND, std::uint64_t indent_level );
|
||||||
|
|
||||||
JsonObjectWriter( JsonObjectWriter&& source ) noexcept;
|
JsonObjectWriter( JsonObjectWriter&& source ) noexcept;
|
||||||
JsonObjectWriter& operator=( JsonObjectWriter&& source ) = delete;
|
JsonObjectWriter& operator=( JsonObjectWriter&& source ) = delete;
|
||||||
@@ -81,8 +82,8 @@ namespace Catch {
|
|||||||
|
|
||||||
class JsonArrayWriter {
|
class JsonArrayWriter {
|
||||||
public:
|
public:
|
||||||
JsonArrayWriter( std::ostream& os );
|
JsonArrayWriter( std::ostream& os CATCH_ATTR_LIFETIMEBOUND );
|
||||||
JsonArrayWriter( std::ostream& os, std::uint64_t indent_level );
|
JsonArrayWriter( std::ostream& os CATCH_ATTR_LIFETIMEBOUND, std::uint64_t indent_level );
|
||||||
|
|
||||||
JsonArrayWriter( JsonArrayWriter&& source ) noexcept;
|
JsonArrayWriter( JsonArrayWriter&& source ) noexcept;
|
||||||
JsonArrayWriter& operator=( JsonArrayWriter&& source ) = delete;
|
JsonArrayWriter& operator=( JsonArrayWriter&& source ) = delete;
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
#ifndef CATCH_XMLWRITER_HPP_INCLUDED
|
#ifndef CATCH_XMLWRITER_HPP_INCLUDED
|
||||||
#define CATCH_XMLWRITER_HPP_INCLUDED
|
#define CATCH_XMLWRITER_HPP_INCLUDED
|
||||||
|
|
||||||
|
#include <catch2/internal/catch_lifetimebound.hpp>
|
||||||
#include <catch2/internal/catch_reusable_string_stream.hpp>
|
#include <catch2/internal/catch_reusable_string_stream.hpp>
|
||||||
#include <catch2/internal/catch_stringref.hpp>
|
#include <catch2/internal/catch_stringref.hpp>
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ namespace Catch {
|
|||||||
public:
|
public:
|
||||||
enum ForWhat { ForTextNodes, ForAttributes };
|
enum ForWhat { ForTextNodes, ForAttributes };
|
||||||
|
|
||||||
constexpr XmlEncode( StringRef str, ForWhat forWhat = ForTextNodes ):
|
constexpr XmlEncode( StringRef str CATCH_ATTR_LIFETIMEBOUND, ForWhat forWhat = ForTextNodes ):
|
||||||
m_str( str ), m_forWhat( forWhat ) {}
|
m_str( str ), m_forWhat( forWhat ) {}
|
||||||
|
|
||||||
|
|
||||||
@@ -61,7 +62,7 @@ namespace Catch {
|
|||||||
|
|
||||||
class ScopedElement {
|
class ScopedElement {
|
||||||
public:
|
public:
|
||||||
ScopedElement( XmlWriter* writer, XmlFormatting fmt );
|
ScopedElement( XmlWriter* writer CATCH_ATTR_LIFETIMEBOUND, XmlFormatting fmt );
|
||||||
|
|
||||||
ScopedElement( ScopedElement&& other ) noexcept;
|
ScopedElement( ScopedElement&& other ) noexcept;
|
||||||
ScopedElement& operator=( ScopedElement&& other ) noexcept;
|
ScopedElement& operator=( ScopedElement&& other ) noexcept;
|
||||||
@@ -93,7 +94,7 @@ namespace Catch {
|
|||||||
XmlFormatting m_fmt;
|
XmlFormatting m_fmt;
|
||||||
};
|
};
|
||||||
|
|
||||||
XmlWriter( std::ostream& os );
|
XmlWriter( std::ostream& os CATCH_ATTR_LIFETIMEBOUND );
|
||||||
~XmlWriter();
|
~XmlWriter();
|
||||||
|
|
||||||
XmlWriter( XmlWriter const& ) = delete;
|
XmlWriter( XmlWriter const& ) = delete;
|
||||||
|
Reference in New Issue
Block a user