|
|
|
@ -136,7 +136,6 @@ extern const Concat concat;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// helper functors for to_json(tuple<...>):
|
|
|
|
|
namespace
|
|
|
|
|
{
|
|
|
|
@ -266,6 +265,7 @@ class FuncBase
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
virtual ~FuncBase() = default;
|
|
|
|
|
virtual bool isSeparator() const = 0;
|
|
|
|
|
virtual void setJavaScriptSignature(js::Object& o) const = 0;
|
|
|
|
|
virtual js::Value call(const js::Array& params) const = 0;
|
|
|
|
|
};
|
|
|
|
@ -279,6 +279,10 @@ public:
|
|
|
|
|
enum { Size = sizeof...(Args) };
|
|
|
|
|
|
|
|
|
|
virtual ~Func() = default;
|
|
|
|
|
virtual bool isSeparator() const override
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Func() : fn() {}
|
|
|
|
|
|
|
|
|
@ -306,11 +310,22 @@ public:
|
|
|
|
|
|
|
|
|
|
o.emplace_back( "return", Type2String<R>::get() );
|
|
|
|
|
o.emplace_back( "params", params );
|
|
|
|
|
o.emplace_back( "separator", false );
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef std::map< std::string, FuncBase* > FunctionMap;
|
|
|
|
|
class Separator : public FuncBase
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
Separator() = default;
|
|
|
|
|
virtual bool isSeparator() const override { return true; }
|
|
|
|
|
virtual void setJavaScriptSignature(js::Object& o) const override { o.emplace_back("separator", true); }
|
|
|
|
|
virtual js::Value call(const js::Array& params) const override { return js::Value{}; }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//typedef std::map< std::string, FuncBase* > FunctionMap;
|
|
|
|
|
typedef std::vector< std::pair< std::string, FuncBase*> > FunctionMap;
|
|
|
|
|
typedef FunctionMap::value_type FP;
|
|
|
|
|
|
|
|
|
|
#endif // FUNCTION_MAP_HH
|
|
|
|
|