summaryrefslogtreecommitdiff
path: root/src/value.cpp
diff options
context:
space:
mode:
authorljfa-ag <ljfa-ag@web.de>2015-06-30 19:32:43 +0200
committerljfa-ag <ljfa-ag@web.de>2015-06-30 19:32:43 +0200
commit5f157da65896a8dc0a6c326255dd8bb7405df82e (patch)
treeaf8c8c8fefd39e88d4695f412fddc52eda1ac531 /src/value.cpp
parent26a08e6eeabec972cf57c6eb4e8f91516ad07f0c (diff)
downloadProject-Tick-5f157da65896a8dc0a6c326255dd8bb7405df82e.tar.gz
Project-Tick-5f157da65896a8dc0a6c326255dd8bb7405df82e.zip
Partial implementation of value
Diffstat (limited to 'src/value.cpp')
-rw-r--r--src/value.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/value.cpp b/src/value.cpp
new file mode 100644
index 0000000000..574c23d087
--- /dev/null
+++ b/src/value.cpp
@@ -0,0 +1,60 @@
+/*
+ * libnbt++ - A library for the Minecraft Named Binary Tag format.
+ * Copyright (C) 2013, 2015 ljfa-ag
+ *
+ * This file is part of libnbt++.
+ *
+ * libnbt++ is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * libnbt++ is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with libnbt++. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "value.h"
+#include "libnbt.h"
+
+namespace nbt
+{
+
+value::value(std::unique_ptr<tag>&& t):
+ tag_(std::move(t))
+{}
+
+value::value(tag&& t):
+ tag_(std::move(t).move_clone())
+{}
+
+value& value::operator=(std::unique_ptr<tag>&& t)
+{
+ tag_ = std::move(t);
+ return *this;
+}
+
+value& value::operator=(tag&& t)
+{
+ return *this = std::move(t).move_clone();
+}
+
+tag_type value::get_type() const
+{
+ return tag_->get_type();
+}
+
+bool operator==(const value& lhs, const value& rhs)
+{
+ return *lhs.tag_ == *rhs.tag_;
+}
+
+bool operator!=(const value& lhs, const value& rhs)
+{
+ return !(lhs == rhs);
+}
+
+}