Program Listing for File primitive.h

Return to documentation for file (include/converter/include/mindapi/ir/primitive.h)

#ifndef MINDSPORE_CORE_MINDAPI_IR_PRIMITIVE_H_
#define MINDSPORE_CORE_MINDAPI_IR_PRIMITIVE_H_

#include <vector>
#include <string>
#include <unordered_map>
#include "mindapi/base/base.h"
#include "mindapi/ir/common.h"
#include "mindapi/ir/value.h"

namespace mindspore::api {
class MIND_API Primitive : public Value {
 public:
  MIND_API_BASE_MEMBER(Primitive);

  explicit Primitive(const std::string &name);

  const std::string &name() const;

  Primitive &AddAttr(const std::string &name, const ValuePtr &attr);

  Primitive &SetAttrs(const std::unordered_map<std::string, ValuePtr> &attrs);

  void EraseAttr(const std::string &name);

  ValuePtr GetAttr(const std::string &name) const;

  bool HasAttr(const std::string &name) const;

  std::unordered_map<std::string, ValuePtr> attrs() const;
};
}  // namespace mindspore::api
#endif  // MINDSPORE_CORE_MINDAPI_IR_PRIMITIVE_H_