diffusion
Version:
Diffusion JavaScript client
34 lines (29 loc) • 1.02 kB
JavaScript
var Codec = require('io/codec');
var LEESS = require('serialisers/long-encoded-enum-set-serialiser');
var TopicSelectorSerialiser = require('topics/topic-selector-serialiser');
function writeLimit(output, limit) {
if (limit === undefined) {
Codec.writeByte(output, 0);
}
else {
Codec.writeByte(output, 1);
Codec.writeString(output, limit.path);
Codec.writeBoolean(output, limit.includesPath);
}
}
function writeRange(output, range) {
writeLimit(output, range.from);
writeLimit(output, range.to);
}
var serialiser = {
write : function(output, query) {
TopicSelectorSerialiser.write(output, query.selector);
writeRange(output, query.range);
LEESS.write(output, query.topicTypes);
Codec.writeBoolean(output, query.withValues);
Codec.writeBoolean(output, query.withProperties);
Codec.writeInt32(output, query.limit);
Codec.writeInt32(output, query.maximumResultSize);
}
};
module.exports = serialiser;