UNPKG

diffusion

Version:

Diffusion JavaScript client

47 lines (38 loc) 1.4 kB
var RangeQueryParameters = require('features/time-series/range-query-parameters'); var Point = require('features/time-series/point'); var Range = require('features/time-series/range'); var BEES = require('serialisers/byte-encoded-enum-serialiser'); var Codec = require('io/codec'); function writePoint(output, point) { Codec.writeInt64(output, point.value); BEES.write(output, point.type); } function writeRange(output, range) { writePoint(output, range.anchor); writePoint(output, range.span); } function readPoint(input) { var value = Codec.readInt64(input); var type = BEES.read(input, Point.Type); return new Point(value, type); } function readRange(input) { var anchor = readPoint(input); var span = readPoint(input); return new Range(anchor, span); } module.exports = { read : function(input) { var queryType = BEES.read(input, RangeQueryParameters.QueryType); var viewRange = readRange(input); var editRange = readRange(input); var limit = Codec.readInt64(input); return new RangeQueryParameters(queryType, viewRange, editRange, limit); }, write : function(output, parameters) { BEES.write(output, parameters.queryType); writeRange(output, parameters.viewRange); writeRange(output, parameters.editRange); Codec.writeInt64(output, parameters.limit); } };