PAD
Pads a binary with a number of bytes on left.
Input stack: a size byte
Output stack: b
PAD takes a and pads it with up to size bytes of byte on the left, up to 1024
bytes. This is an extremely important tool in building comparable collections over variable-length
values (such as bigintegers, for example)
PumpkinDB> 0x01 4 0 PAD
0x00000001
Allocation
Allocates for a result of padding
Errors
EmptyStack error if there are less than three items on the stack
InvalidValue error if byte is larger or smaller than one byte
InvalidValue error if size is larger than 1024.
InvalidValue error if size is lesser than the length of a.
Tests
pad : 0x01 4 0 PAD 0x00000001 EQUAL?.
pad_1 : 0x01 4 0xff PAD 0xffffff01 EQUAL?.
requires_three_items_0 : [PAD] TRY UNWRAP 0x04 EQUAL?.
requires_three_items_1 : [1 PAD] TRY UNWRAP 0x04 EQUAL?.
requires_three_items_2 : [1 1 PAD] TRY UNWRAP 0x04 EQUAL?.
invalid_value : [0x01 4 "test" PAD] TRY UNWRAP 0x03 EQUAL?.
too_big : [0x01 1025 0 PAD] TRY UNWRAP 0x03 EQUAL?.
too_small : [0x0102 1 0 PAD] TRY UNWRAP 0x03 EQUAL?.