This commit adds 'Module' class which serves as an entry point for coco
IR.
Note that this commit justs adds a template (or placeholder) for
'Module' implementation.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
--- /dev/null
+#ifndef __COCO_IR_MODULE_H__
+#define __COCO_IR_MODULE_H__
+
+namespace coco
+{
+
+/**
+ * @breif Top-level element of coco IR which represents a neural network
+ */
+class Module final
+{
+public:
+ Module() = default;
+
+public:
+ Module(const Module &) = delete;
+ Module(Module &&) = delete;
+};
+
+} // namespace coco
+
+#endif // __COCO_IR_MODULE_H__
--- /dev/null
+#include "coco/IR/Module.h"
+
+// NOTE Do NOT delete this file; this file checks the completeness of 'Module.h'
--- /dev/null
+#include "coco/IR/Module.h"
+
+#include <gtest/gtest.h>
+
+TEST(IR_MODULE, default_constructable)
+{
+ // coco::Module should be default constructable.
+ auto m = new coco::Module{};
+
+ ASSERT_NE(m, nullptr);
+
+ delete m;
+}