-
Notifications
You must be signed in to change notification settings - Fork 2
Класс Unboxed
Андрей Мулик edited this page Oct 6, 2023
·
12 revisions
Unboxed
- класс типов, отвечающий за сериализацию и десериализацию бинарных данных в ByteArray#
.
Изначально Unboxed
задумывался как упрощённая версия Storable
.
Класс Unboxed
, мягко говоря, не лучший пример дизайна: из 11 добавленных в sdp-0.2
методов класса до sdp-0.4
доживут только 4.
- Функции
(!>#)
,writeByteArray#
иfillByteArray#
были переименованы вsdp-0.3
. Варианты с историческими названиями переместятся из класса в модуль вsdp-0.4
, а после - окончательно удалены. - Функции
sizeof
,sizeof#
,copyUnboxed#
иcopyUnboxedM#
были перемещены в модуль вsdp-0.3
- их заменятsizeof##
,copyUnboxed##
иcopyUnboxedM##
. Оригинальные функции остаются вsdp
.
Функции fromProxy
и fromProxy1
в sdp-0.3
перемещены в SDP.Proxy
, который экспортируется в т.ч. модулем SDP.Unboxed
.
В sdp-0.2
и sdp-0.2.1
в модуль SDP.Unboxed
добавлялись вспомогательные операции, в т.ч. сомнительной полезности. sdp-0.3
приводит их к единому виду. Для удобства, они были отдельно описаны в разделе "Вспомогательные операции".
Здесь описаны вспомогательные операции, добавленные в sdp-0.2
и sdp-0.2.1
. 6 из них устарели, и поэтому зачёркнуты.
Каноничная операция | Вариации |
---|---|
sizeof## | sizeof, sizeof#, psizeof, psizeof# |
chunkof## | chunkof, chunkof#, pchunkof, pchunkof# |
indexof## | indexof, indexof#, pindexof, pindexof# |
newUnboxed | pnewUnboxed, |
copyUnboxed## | copyUnboxed#, pcopyUnboxed, |
copyUnboxedM## | copyUnboxedM#, copyUnboxedM##, pcopyUnboxedM, |
cloneUnboxed## | cloneUnboxed#, |
cloneUnboxedM## | cloneUnboxedM#, pcloneUnboxedM, |
thawUnboxed# | pthawUnboxed |
freezeUnboxed# | pfreezeUnboxed |
concat# | pconcat |
eqUnboxed## | bytewiseEqUnboxed##, peqUnboxed |
Метод | Описание | Добавлен | Устарел | Перемещён в |
---|---|---|---|---|
sizeof sizeof# sizeof## |
Получить размер массива элементов указанного типа в байтах по количеству элементов | sdp-0.2 sdp-0.2 sdp-0.3 |
sdp-0.3:SDP.Unboxed sdp-0.3:SDP.Unboxed - |
|
(!>#) readUnboxed# |
Прочитать значение изменяемого массива по индексу | sdp-0.2 sdp-0.3 |
sdp-0.3 - |
|
writeByteArray# writeUnboxed# |
Записать значение в изменяемый массив по индексу | sdp-0.2 sdp-0.3 |
sdp-0.3 - |
|
fillByteArray# fillUnboxed# |
Заполнить массив указанной длины данным значением | sdp-0.2 sdp-0.3 |
sdp-0.3 - |
|
copyUnboxed# copyUnboxed## |
Переписать указанный фрагмент неизменяемого массива в изменяемый | sdp-0.2 sdp-0.3 |
sdp-0.3:SDP.Unboxed - |
|
copyUnboxedM# copyUnboxedM## |
Переписать указанный фрагмент одного изменяемого массива в другой | sdp-0.2 sdp-0.3 |
sdp-0.3:SDP.Unboxed - |
|
hashUnboxedWith | Вычислить hash with salt - аналогична Data.Hashable.hashByteArrayWithSalt
|
sdp-0.2 | ||
newUnboxed | Создать новый массив, инициализированный значением по умолчанию | sdp-0.2 | ||
newUnboxed' | Создать новый массив, инициализированный данным значением | sdp-0.2 | ||
(!#) |
Прочитать значение неизменяемого массива по индексу | sdp-0.2 | ||
filler | Стандартный заполнитель (значение по умолчанию) | sdp-0.3 | ||
offsetof## | Получить смещение в байтах относительно начала массива элемента с указанным индексом | sdp-0.3 | ||
indexof## | Получить индекс элемента с указанным смещением | sdp-0.3 | ||
chunkof## | Получить минимальный (в байтах и элементах) размер пачки элементов | sdp-0.3 | ||
eqUnboxed## | Сравнить фрагменты двух массивов одинаковой длины | sdp-0.3 | ||
indexUnboxedOff# | Прочитать элемент неизменяемого массива по смещению в байтах | sdp-0.3 | ||
readUnboxedOff# | Прочитать элемент изменяемого массива по смещению в байтах | sdp-0.3 | ||
writeUnboxedOff# | Записать значение в изменяемый массив по смещению в байтах | sdp-0.3 | ||
fillUnboxedOff# | Заполнить массив указанной длины данным значением - со смещением | sdp-0.3 | ||
newUnboxed# | Заполнить массив значением по умолчанию. | sdp-0.3 | ||
sortUnboxed# | Отсортировать переданный массив | sdp-0.3 | ||
prepareSort# | Подготовить данные к сортировке, например, числа со знаком для поразрядной сортировки | sdp-0.3 | ||
restoreSort# | Восстановить данные после сортировки, например, числа со знаком после поразрядной сортировки | sdp-0.3 | ||
sumUnboxed# | Реализация sum для примитивного массива |
sdp-0.3 | ||
productUnboxed# | Реализация product для примитивного массива |
sdp-0.3 | ||
maximumUnboxed# | Реализация maximum для примитивного массива |
sdp-0.3 | ||
minimumUnboxed# | Реализация minimum для примитивного массива |
sdp-0.3 |
Метод | Описание | Добавлен | Устарел | Перемещён в | Перемещён из |
---|---|---|---|---|---|
psizeof | sdp-0.2 | ||||
pnewUnboxed | sdp-0.2 | ||||
pcopyUnboxed | sdp-0.2 | ||||
pcopyUnboxedM | sdp-0.2 | ||||
fromProxy | sdp-0.2 | sdp-0.3:SDP.Proxy | |||
pnewUnboxed1 | sdp-0.2 | sdp-0.3 | |||
pcopyUnboxed1 | sdp-0.2 | sdp-0.3 | |||
pcopyUnboxedM1 | sdp-0.2 | sdp-0.3 | |||
fromProxy1 | sdp-0.2 | sdp-0.3:SDP.Proxy | |||
cloneUnboxed# | sdp-0.2.1 | ||||
cloneUnboxedM# | sdp-0.2.1 | ||||
thawUnboxed# | sdp-0.2.1 | ||||
freezeUnboxed# | sdp-0.2.1 | ||||
psizeof# | sdp-0.2.1 | ||||
pcloneUnboxed | sdp-0.2.1 | ||||
pcloneUnboxedM | sdp-0.2.1 | ||||
pthawUnboxed | sdp-0.2.1 | ||||
pfreezeUnboxed | sdp-0.2.1 | ||||
pcloneUnboxed1 | sdp-0.2.1 | sdp-0.3 | |||
cloneUnboxed1# | sdp-0.2.1 | sdp-0.3 | |||
pcloneUnboxedM1 | sdp-0.2.1 | sdp-0.3 | |||
lzero# | sdp-0.2.1 | ||||
single# | sdp-0.2.1 | ||||
fromList# | sdp-0.2.1 | ||||
fromFoldable# | sdp-0.2.1 | ||||
fromListN# | sdp-0.2.1 | ||||
newLinear# | sdp-0.2.1 | ||||
newLinearN# | sdp-0.2.1 | ||||
fromFoldableM# | sdp-0.2.1 | ||||
concat# | sdp-0.2.1 | ||||
pconcat | sdp-0.2.1 | ||||
bytewiseEqUnboxed## | sdp-0.3 | ||||
radixSortUnboxed# | sdp-0.3 | ||||
copyUnboxed# | sdp-0.3 | ||||
copyUnboxedM# | sdp-0.3 | ||||
cloneUnboxedM## | sdp-0.3 | ||||
offsetof | sdp-0.3 | ||||
chunkof | sdp-0.3 | ||||
chunkof# | sdp-0.3 | ||||
offsetof# | sdp-0.3 | ||||
cloneUnboxed## | sdp-0.3 | ||||
pchunkof | sdp-0.3 | ||||
pchunkof# | sdp-0.3 | ||||
poffsetof# | sdp-0.3 | ||||
poffsetof | sdp-0.3 | ||||
peqUnboxed | sdp-0.3 | ||||
sizeof | sdp-0.2 | sdp-0.3:Unboxed | |||
sizeof# | sdp-0.2 | sdp-0.3:Unboxed | |||
copyUnboxed# | sdp-0.2 | sdp-0.3:Unboxed | |||
copyUnboxedM# | sdp-0.2 | sdp-0.3:Unboxed | |||
targetByteOrder | sdp-0.3 |