123 lines
2.7 KiB
Markdown
123 lines
2.7 KiB
Markdown
|
buffers
|
||
|
=======
|
||
|
|
||
|
Treat a collection of Buffers as a single contiguous partially mutable Buffer.
|
||
|
|
||
|
Where possible, operations execute without creating a new Buffer and copying
|
||
|
everything over.
|
||
|
|
||
|
This is a cleaner more Buffery rehash of
|
||
|
[bufferlist](http://github.com/substack/node-bufferlist).
|
||
|
|
||
|
example
|
||
|
=======
|
||
|
|
||
|
slice
|
||
|
-----
|
||
|
|
||
|
var Buffers = require('buffers');
|
||
|
var bufs = Buffers();
|
||
|
bufs.push(new Buffer([1,2,3]));
|
||
|
bufs.push(new Buffer([4,5,6,7]));
|
||
|
bufs.push(new Buffer([8,9,10]));
|
||
|
|
||
|
console.dir(bufs.slice(2,8))
|
||
|
|
||
|
output:
|
||
|
|
||
|
$ node examples/slice.js
|
||
|
<Buffer 03 04 05 06 07 08>
|
||
|
|
||
|
splice
|
||
|
------
|
||
|
|
||
|
var Buffers = require('buffers');
|
||
|
var bufs = Buffers([
|
||
|
new Buffer([1,2,3]),
|
||
|
new Buffer([4,5,6,7]),
|
||
|
new Buffer([8,9,10]),
|
||
|
]);
|
||
|
|
||
|
var removed = bufs.splice(2, 4);
|
||
|
console.dir({
|
||
|
removed : removed.slice(),
|
||
|
bufs : bufs.slice(),
|
||
|
});
|
||
|
|
||
|
output:
|
||
|
|
||
|
$ node examples/splice.js
|
||
|
{ removed: <Buffer 03 04 05 06>,
|
||
|
bufs: <Buffer 01 02 07 08 09 0a> }
|
||
|
|
||
|
methods
|
||
|
=======
|
||
|
|
||
|
Buffers(buffers)
|
||
|
----------------
|
||
|
|
||
|
Create a Buffers with an array of `Buffer`s if specified, else `[]`.
|
||
|
|
||
|
.push(buf1, buf2...)
|
||
|
--------------------
|
||
|
|
||
|
Push buffers onto the end. Just like `Array.prototype.push`.
|
||
|
|
||
|
.unshift(buf1, buf2...)
|
||
|
-----------------------
|
||
|
|
||
|
Unshift buffers onto the head. Just like `Array.prototype.unshift`.
|
||
|
|
||
|
.slice(i, j)
|
||
|
------------
|
||
|
|
||
|
Slice a range out of the buffer collection as if it were contiguous.
|
||
|
Works just like the `Array.prototype.slice` version.
|
||
|
|
||
|
.splice(i, howMany, replacements)
|
||
|
---------------------------------
|
||
|
|
||
|
Splice the buffer collection as if it were contiguous.
|
||
|
Works just like `Array.prototype.splice`, even the replacement part!
|
||
|
|
||
|
.copy(dst, dstStart, start, end)
|
||
|
--------------------------------
|
||
|
|
||
|
Copy the buffer collection as if it were contiguous to the `dst` Buffer with the
|
||
|
specified bounds.
|
||
|
Works just like `Buffer.prototype.copy`.
|
||
|
|
||
|
.get(i)
|
||
|
-------
|
||
|
|
||
|
Get a single element at index `i`.
|
||
|
|
||
|
.set(i, x)
|
||
|
----------
|
||
|
|
||
|
Set a single element's value at index `i`.
|
||
|
|
||
|
.indexOf(needle, offset)
|
||
|
----------
|
||
|
|
||
|
Find a string or buffer `needle` inside the buffer collection. Returns
|
||
|
the position of the search string or -1 if the search string was not
|
||
|
found.
|
||
|
|
||
|
Provide an `offset` to skip that number of characters at the beginning
|
||
|
of the search. This can be used to find additional matches.
|
||
|
|
||
|
This function will return the correct result even if the search string
|
||
|
is spread out over multiple internal buffers.
|
||
|
|
||
|
.toBuffer()
|
||
|
-----------
|
||
|
|
||
|
Convert the buffer collection to a single buffer, equivalent with `.slice(0, buffers.length)`;
|
||
|
|
||
|
.toString(encoding, start, end)
|
||
|
-----------
|
||
|
|
||
|
Decodes and returns a string from the buffer collection.
|
||
|
Works just like `Buffer.prototype.toString`
|