feat(UML-1582): Добавлена обертка для упаковки сырых данных

This commit is contained in:
algin 2023-06-16 13:10:36 +03:00
parent bd46f29041
commit b1f1cadcfc

View File

@ -12,6 +12,11 @@
namespace free_rtos {
struct RawData {
void *data{nullptr};
size_t size{0};
};
struct Padding {
size_t size;
};
@ -47,6 +52,16 @@ struct PackFunctor : public PackFunctorBase {
raw += size;
}
void operator()(RawData& data) {
if(data.data == nullptr) {
return;
}
memcpy(raw, data.data, data.size);
raw += data.size;
}
void operator()(Padding& padding) {
raw += padding.size;
}
@ -85,6 +100,16 @@ struct UnpackFunctor : public UnpackFunctorBase {
raw += size;
}
void operator()(RawData& data) {
if(data.data == nullptr) {
return;
}
memcpy(data.data, raw, data.size);
raw += data.size;
}
void operator()(Padding& padding) {
raw += padding.size;
}