summaryrefslogtreecommitdiffstats
path: root/depends/libnbtplusplus/PRD.md
diff options
context:
space:
mode:
Diffstat (limited to 'depends/libnbtplusplus/PRD.md')
m---------depends/libnbtplusplus0
-rw-r--r--depends/libnbtplusplus/PRD.md60
2 files changed, 0 insertions, 60 deletions
diff --git a/depends/libnbtplusplus b/depends/libnbtplusplus
new file mode 160000
+Subproject 9d17b0a9b93e684a5ac6cac8f70d9a7909a877c
diff --git a/depends/libnbtplusplus/PRD.md b/depends/libnbtplusplus/PRD.md
deleted file mode 100644
index f7b46f1a..00000000
--- a/depends/libnbtplusplus/PRD.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# libnbt++2 Product Requirements Document
-
-### Purpose
-Provide a C++ interface for working with NBT data, particularly originating
-from Minecraft.
-
-### Scope
-External Minecraft utilities that read or manipulate parts of savefiles,
-such as:
-- (Graphical) NBT editors
-- Inventory editors
-- Tools for reading or changing world metadata
-- Map editors and visualizers
-
-### Definitions, Acronyms and Abbreviations
-- **libnbt++1:** The predecessor of libnbt++2.
-- **Minecraft:** A sandbox voxel world game written in Java, developed by
- Mojang.
-- **Mojang's implementation:** The NBT library written in Java that Mojang
- uses in Minecraft.
-- **NBT:** Named Binary Tag. A binary serialization format used by Minecraft.
-- **Tag:** A data unit in NBT. Can be a number, string, array, list or
- compound.
-
-### Product Functions
-- /RF10/ Reading and writing NBT data files/streams with or without
- compression.
-- /RF20/ Representing NBT data in memory and allowing programs to read or
- manipulate it in all the ways that Mojang's implementation and libnbt++1
- provide.
-- /RF30/ A shorter syntax than in libnbt++1 and preferrably also Mojang's
- implementation.
-- /RF35/ Typesafe operations (no possibly unwanted implicit casts), in case
- of incompatible types exceptions should be thrown.
-- /RF40/ The need for insecure operations and manual memory management should
- be minimized; references and `std::unique_ptr` should be preferred before
- raw pointers.
-- /RF55/ A wrapper for tags that provides syntactic sugar is preferred
- before raw `std::unique_ptr` values.
-- /RF50/ Move semantics are preferred before copy semantics.
-- /RF55/ Copying tags should be possible, but only in an explicit manner.
-- /RF60/ Checked conversions are preferred, unchecked conversions may be
- possible but discouraged.
-
-### Product Performance
-- /RP10/ All operations on (not too large) NBT data should not be slower
- than their counterparts in Mojang's implementation.
-- /RP20/ The library must be able to handle all possible NBT data that
- Mojang's implementation can create and handle.
-- /RP30/ Often used operations on large Lists, Compounds and Arrays must
- be of at most O(log n) time complexity if reasonable. Other operations
- should be at most O(n).
-
-### Quality Requirements
-- Functionality: good
-- Reliability: normal
-- Usability: very good
-- Efficiency: good
-- Changeability: normal
-- Transferability: normal