#pragma once #include "AST/Base.h" #include #include #include #include #include namespace plsm { namespace ast { class FnDef; class TraitDef : public Stmt { const std::string name; const std::vector> traits; public: TraitDef(LOC_ARG, const std::string &name, std::vector> &traits) : Stmt(location), name(name), traits(std::move(traits)) {} virtual boost::json::value toJson() override; static std::unique_ptr fromJson(boost::json::value json); }; } // namespace ast } // namespace plsm