forked from lthn/blockchain
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
// Copyright (c) 2014-2018 Zano Project
|
||
// Copyright (c) 2014-2018 The Louisdor Project
|
||
// Copyright (c) 2012-2013 The Boolberry developers
|
||
// Copyright (c) 2017-2025 Lethean (https://lt.hn)
|
||
//
|
||
// Licensed under the European Union Public Licence (EUPL) version 1.2.
|
||
// You may obtain a copy of the licence at:
|
||
//
|
||
// https://joinup.ec.europa.eu/software/page/eupl/licence-eupl
|
||
//
|
||
// The EUPL is a copyleft licence that is compatible with the MIT/X11
|
||
// licence used by the original projects; the MIT terms are therefore
|
||
// considered “grandfathered” under the EUPL for this code.
|
||
//
|
||
// SPDX‑License‑Identifier: EUPL-1.2
|
||
//
|
||
|
||
#pragma once
|
||
|
||
#include "json_archive.h"
|
||
#include "variant.h"
|
||
|
||
template <bool W>
|
||
struct debug_archive : public json_archive<W> {
|
||
typedef typename json_archive<W>::stream_type stream_type;
|
||
|
||
debug_archive(stream_type &s) : json_archive<W>(s) { }
|
||
};
|
||
|
||
template <class T>
|
||
struct serializer<debug_archive<true>, T>
|
||
{
|
||
static void serialize(debug_archive<true> &ar, T &v)
|
||
{
|
||
ar.begin_object();
|
||
ar.tag(variant_serialization_traits<debug_archive<true>, T>::get_tag());
|
||
serializer<json_archive<true>, T>::serialize(ar, v);
|
||
ar.end_object();
|
||
ar.stream() << std::endl;
|
||
}
|
||
};
|