From 2d1c86bc8335aedb81cdf7887920ed07c4c01c7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=8B=D1=87=D0=BA=D0=BE=D0=B2=20=D0=90=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=D0=B5=D0=B9?= Date: Fri, 24 Mar 2023 17:08:42 +0300 Subject: [PATCH] PIByteArray optimization - takeRange --- libs/main/types/pibytearray.h | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/libs/main/types/pibytearray.h b/libs/main/types/pibytearray.h index b02d0a22..94ff84cd 100644 --- a/libs/main/types/pibytearray.h +++ b/libs/main/types/pibytearray.h @@ -56,6 +56,7 @@ public: PIByteArray(const PIDeque & o): d(o) {} PIByteArray(PIByteArray && o): d(std::move(o.d)) {} + PIByteArray(PIDeque && o): d(std::move(o)) {} //! \~english Constructs 0-filled byte array with size "size" //! \~russian Создает заполненный "0" байтовый массив размером "size" @@ -637,7 +638,25 @@ public: //! \~english Return sub-array starts from "index" and has "count" or less bytes //! \~russian Возвращает подмассив с данными от индекса "index" и размером не более "count" - PIByteArray getRange(size_t index, size_t count) const { return d.getRange(index, count); } + PIByteArray getRange(size_t index, size_t count) const { return PIByteArray(d.getRange(index, count)); } + + //! \~english Cut sub-array of this array. + //! \~russian Вырезает подмассив, то есть кусок из текущего массива. + //! \~english + //! \param index - index of this array where sub-array starts + //! \param count - sub-array size + //! \~russian + //! \param index - индекс в текущем массиве, откуда начинётся подмассив + //! \param count - размер подмассива + //! \~\details + //! \~english + //! Index must be in range from `0` to `size()-1`. + //! If sub-array size more than this array size, than ends early. + //! \~russian + //! Индекс начала должен лежать в диапазоне от `0` до `size()-1`. + //! Если заданный размер подмассива превышает размер текущего массива, + //! то вернется подмассив меньшего размера (`size()-index-1`). + inline PIByteArray takeRange(size_t index, size_t count) { return PIByteArray(d.takeRange(index, count)); } //! \~english Reverses this array. //! \~russian Обращает порядок следования элементов этого массива.