support for start/length in buffer methods

This commit is contained in:
Peli de Halleux 2016-08-04 08:42:47 -07:00
parent 4e46682489
commit f2c43c74ac
3 changed files with 17 additions and 9 deletions

View File

@ -123,21 +123,25 @@ namespace BufferMethods {
/** /**
* Shift buffer left in place, with zero padding. * Shift buffer left in place, with zero padding.
* @param offset number of bytes to shift; use negative value to shift right * @param offset number of bytes to shift; use negative value to shift right
* @param start start offset in buffer. Default is 0.
* @param length number of elements in buffer. If negative, length is set as the buffer length minus start. eg: -1
*/ */
//% //%
void shift(Buffer buf, int offset) void shift(Buffer buf, int offset, int start = 0, int length = -1)
{ {
ManagedBuffer(buf).shift(offset); ManagedBuffer(buf).shift(offset, start, length);
} }
/** /**
* Rotate buffer left in place. * Rotate buffer left in place.
* @param offset number of bytes to shift; use negative value to shift right * @param offset number of bytes to shift; use negative value to shift right
* @param start start offset in buffer. Default is 0.
* @param length number of elements in buffer. If negative, length is set as the buffer length minus start. eg: -1
*/ */
//% //%
void rotate(Buffer buf, int offset) void rotate(Buffer buf, int offset, int start = 0, int length = -1)
{ {
ManagedBuffer(buf).rotate(offset); ManagedBuffer(buf).rotate(offset, start, length);
} }
// int readBytes(uint8_t *dst, int offset, int length, bool swapBytes = false) const; // int readBytes(uint8_t *dst, int offset, int length, bool swapBytes = false) const;

View File

@ -635,16 +635,20 @@ declare interface Buffer {
/** /**
* Shift buffer left in place, with zero padding. * Shift buffer left in place, with zero padding.
* @param offset number of bytes to shift; use negative value to shift right * @param offset number of bytes to shift; use negative value to shift right
* @param start start offset in buffer. Default is 0.
* @param length number of elements in buffer. If negative, length is set as the buffer length minus start. eg: -1
*/ */
//% shim=BufferMethods::shift //% start.defl=0 length.defl=-1 shim=BufferMethods::shift
shift(offset: number): void; shift(offset: number, start?: number, length?: number): void;
/** /**
* Rotate buffer left in place. * Rotate buffer left in place.
* @param offset number of bytes to shift; use negative value to shift right * @param offset number of bytes to shift; use negative value to shift right
* @param start start offset in buffer. Default is 0.
* @param length number of elements in buffer. If negative, length is set as the buffer length minus start. eg: -1
*/ */
//% shim=BufferMethods::rotate //% start.defl=0 length.defl=-1 shim=BufferMethods::rotate
rotate(offset: number): void; rotate(offset: number, start?: number, length?: number): void;
/** /**
* Write contents of `src` at `dstOffset` in current buffer. * Write contents of `src` at `dstOffset` in current buffer.

View File

@ -70,7 +70,7 @@
"yottaTarget": "bbc-microbit-classic-gcc", "yottaTarget": "bbc-microbit-classic-gcc",
"yottaCorePackage": "pxt-microbit-core", "yottaCorePackage": "pxt-microbit-core",
"githubCorePackage": "microsoft/pxt-microbit-core", "githubCorePackage": "microsoft/pxt-microbit-core",
"gittag": "v0.1.11", "gittag": "v0.2.2",
"serviceId": "ws" "serviceId": "ws"
}, },
"serial": { "serial": {