Splice a buffer like array and string splice
npm install buffer-splicebash
npm i --save buffer-splice
`Usage
$3
Splice a buffer
* @param {Buffer|Object} buffer input buffer or opts: { buffer: }
* @param {Integer} [start] default: buffer.length
* @param {Integer} [count] default: buffer.length
* @param {Buffer,String,Number,Object,Array} [...items] items to insert into buffer (will be casted to buffer)
* @param {Integer} [count] default: buffer.length
* @return {Buffer} modified buffer of removed buffer if opts is passedExamples
`js
var splice = require('buffer-splice')var buffer = new Buffer('helloworld')
splice(buffer) // new Buffer('helloworld')
splice(buffer, 5, 5) // new Buffer('hello')
splice(buffer, 5, 5, new Buffer("FOO")) // new Buffer('helloFOO')
// Want the removed buffer too?
// Pass
opts and splice will work more like Array.splice
// Unlike Arrays, Buffers cannot be modified directly.
// When you pass an opts w/ buffer property buffer-splice can update the buffer reference.var opts = {
buffer: buffer
}
var removed = splice(opts, 1) // removed: new Buffer('elloworld')
opts.buffer // modified: new Buffer('h') // ref was changed
`More Examples
`js
// buffer-splice supports all types for items,
// it uses cast-buffer to cast items to bufferssplice(buffer, 5, 5) // new Buffer('hello')
splice(buffer, 5, 5, new Buffer("FOO")) // new Buffer('helloFOO')
splice(buffer, 5, 5, "FOO") // new Buffer('helloFOO')
splice(buffer, 5, 5, 10) // new Buffer('hello10')
splice(buffer, 5, 5, [ 'array' ]) // new Buffer('hello["array"]')
splice(buffer, 5, 5, { object: true }) // new Buffer('hello{"object":true}')
splice(buffer, 5, 5, 'FOO', 10, 'QUX') // new Buffer('helloFOO10QUX')
``