1#ifndef Rosebud_CerealSerializer_H
2#define Rosebud_CerealSerializer_H
3#include <Rosebud/Serializer.h>
10 using Ptr = std::shared_ptr<CerealSerializer>;
16 static Ptr instance();
17 virtual std::string
name()
const override;
18 virtual std::string
purpose()
const override;
Class serializer producing JSON.
virtual void genEpilogue(std::ostream &header, std::ostream &impl, const Ast::ClassPtr &, const Hierarchy &, const Generator &) const override
Generate epilogue code.
virtual std::string purpose() const override
Single-line description for the serializer.
virtual void genBody(std::ostream &header, std::ostream &impl, const Ast::ClassPtr &, const Hierarchy &, const Generator &) const override
Generate main serialization code for the specified class.
virtual bool isSerializable(const Ast::ClassPtr &) const override
Determines if a class should be serialized.
virtual std::string name() const override
Every serializer has a unique name.
virtual void genPrologue(std::ostream &header, std::ostream &impl, const Ast::ClassPtr &, const Hierarchy &, const Generator &) const override
Generate prologue code.
Base class for backend code generators.
Base class for serialization generators.
Graph containing user-defined vertices and edges.
std::shared_ptr< Class > ClassPtr
Shared-ownership pointer to a Class.
Rosebud is a tool to generate abstract syntax trees.