Skip to content

File parameter.hpp

File List > backends > cxx > include > zmbt > model > parameter.hpp

Go to the documentation of this file

#ifndef ZMBT_MODEL_PARAMETER_HPP_
#define ZMBT_MODEL_PARAMETER_HPP_

#include <boost/json.hpp>
#include <zmbt/expr.hpp>


namespace zmbt {


class Param final : public zmbt::lang::Expression
{
    boost::json::string value_;

    Param() = default;
public:


    static bool isParam(boost::json::value const& v);

    // static Param parse(boost::json::value const& v);

    Param(boost::json::value v)
        : Expression(Expression::encodePreProc(zmbt::format("$[%s]", v).c_str()))
    {}

    Param(Param const&) = default;
    Param(Param &&) = default;
    Param& operator=(Param const&) = default;
    Param& operator=(Param &&) = default;
    ~Param() = default;

    operator boost::json::value() const
    {
        return data();
    }
};


}

#endif