dev@241: /** dev@241: * Created by lucast on 26/04/2017. dev@241: */ dev@497: import {StreamingResponse} from 'piper-js/streaming'; dev@241: dev@241: export const arrayReducer = (acc: T[], val: T[]): T[] => { dev@316: const len = val.length; dev@316: for (let i = 0; i < len; ++i) { dev@302: acc.push(val[i]); dev@302: } dev@241: return acc; dev@241: }; dev@241: dev@241: export const typedArrayReducer = (acc: Float32Array, dev@241: val: Float32Array): Float32Array => { dev@241: return Float32Array.of(...acc, ...val); dev@241: }; dev@241: dev@241: const inPlaceTypedArrayReducer = (acc: Float32Array, dev@241: val: Float32Array, dev@241: i: number): Float32Array => { dev@241: acc.set(val, i); dev@241: return acc; dev@241: }; dev@241: dev@241: export const streamingResponseReducer = (acc: StreamingResponse, dev@302: val: StreamingResponse): dev@302: StreamingResponse => { dev@302: acc.progress = val.progress; dev@302: if (val.configuration) { dev@302: acc.configuration = val.configuration; dev@302: } dev@302: arrayReducer(acc.features, val.features); dev@302: return acc; dev@302: };