arquero-arrow
Version:
Arrow serialization support for Arquero.
25 lines (23 loc) • 494 B
JavaScript
import { array } from './util';
export default function(builder, length) {
const valid = array(Uint8Array, length / 8);
let nulls = 0;
return {
set(value, index) {
if (value == null) {
++nulls;
} else {
builder.set(value, index);
valid[index >> 3] |= (1 << (index % 8));
}
},
data: () => {
const d = builder.data();
if (nulls) {
d.nulls = nulls;
d.buffers[2] = valid;
}
return d;
}
};
}