summaryrefslogtreecommitdiff
path: root/implementation/message/src/deserializer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'implementation/message/src/deserializer.cpp')
-rw-r--r--implementation/message/src/deserializer.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/implementation/message/src/deserializer.cpp b/implementation/message/src/deserializer.cpp
index 8a3c891..b416199 100644
--- a/implementation/message/src/deserializer.cpp
+++ b/implementation/message/src/deserializer.cpp
@@ -111,6 +111,17 @@ bool deserializer::deserialize(uint8_t *_data, std::size_t _length) {
return true;
}
+bool deserializer::deserialize(std::string& _target, std::size_t _length) {
+ if (_length > remaining_ || _length > _target.capacity()) {
+ return false;
+ }
+ _target.assign(position_, position_ + _length);
+ position_ += _length;
+ remaining_ -= _length;
+
+ return true;
+}
+
bool deserializer::deserialize(std::vector< uint8_t >& _value) {
if (_value.capacity() > remaining_)
return false;