I dont know if I dont understand the functionning of the node or if this is a bug, but in the sample patch attached, I stored 7 string with the store node :
slice 0 - a
slice 1 - b
slice 2 - c
slice 3 - d
slice 4 - e
slice 5 - f
slice 6 - g
Then I put a 4 slices spread on the index pin :
slice 0 - 0
slice 1 - 1
slice 2 - 2
slice 3 - 3
When I press remove the store node should return a spread of 3 slices containing e,f,g ? But it’s return : b,d,f
remove is an incremental operation on a spread. after each removed slice the index changes for the whole spread.
so if you want to remove the first for slices you can
either insert bin size 4 & 3 and remove index 0
or insert 4 times index 0
or remove slices in the order 3 , 2 , 1 , 0
the code works like this more or less:
a | b | c | d | e | f | g
remove 0
b | c | d | e | f | g
remove 0
…
or the last case
a | b | c | d | e | f | g
remove 3
a | b | c | e | f | g
remove 2
a | b | e | f | g
…
I thought this might be the right place to report a bug.
After clearing the storage (so it returns nil), and inserting e.g. a 2slice spread (0/2) and binsize being set to 2, on the first insert the node returns just 0. After a second insert, it returns 0,2,0,0.
After the first insert it should already be 0,2; the second insert returning 0,2,0,2 accordingly.