summaryrefslogtreecommitdiff
path: root/binparse/parse.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'binparse/parse.cpp')
-rw-r--r--binparse/parse.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/binparse/parse.cpp b/binparse/parse.cpp
index cf7c0be..a26e72e 100644
--- a/binparse/parse.cpp
+++ b/binparse/parse.cpp
@@ -90,6 +90,14 @@ Offset32 parse<Offset32>(std::istream& is, std::string name) {
}
template<>
+PString8 parse<PString8>(std::istream& is, std::string name) {
+ uint8_t len = parse<uint8_t>(is, name + "_len");
+ std::vector<char> data(len, 0);
+ is.read(data.data(), len);
+ return PString8(std::string(data.begin(), data.end()));
+}
+
+template<>
std::array<uint8_t, 8> parse<std::array<uint8_t, 8>>(std::istream& is, std::string name) {
if(!is) {
throw UnexpectedEOS();