digital-vcd-parser/lib/chopper.js

36 lines
752 B
JavaScript

'use strict';
function xoshiro128ss(a, b, c, d) {
return function() {
var t = b << 9, r = a * 5; r = (r << 7 | r >>> 25) * 9;
c ^= a; d ^= b;
b ^= c; a ^= d; c ^= t;
d = d << 11 | d >>> 21;
return (r >>> 0) / 4294967296;
};
}
function * chopper (src, step) {
const chunker = len => {
const chunk = src.slice(0, len);
src = src.slice(chunk.length);
return chunk;
};
const random = xoshiro128ss(1134534345, 2145245245624, 313442566456, 4245642456456);
// const random = Math.random;
// const random = () => 0;
// yield(chunker(395));
// yield(chunker(145));
while(true) {
if (src.length === 0) {
return;
}
yield(chunker(random() * step + step));
}
}
module.exports = chopper;