// Generated by CoffeeScript 1.7.1 (function() { var Optional; Optional = (function() { function Optional(type, condition) { this.type = type; this.condition = condition != null ? condition : true; } Optional.prototype.decode = function(stream, parent) { var condition; condition = this.condition; if (typeof condition === 'function') { condition = condition.call(parent, parent); } if (condition) { return this.type.decode(stream, parent); } }; Optional.prototype.size = function(val, parent) { var condition; condition = this.condition; if (typeof condition === 'function') { condition = condition.call(parent, parent); } if (condition) { return this.type.size(val, parent); } else { return 0; } }; Optional.prototype.encode = function(stream, val, parent) { var condition; condition = this.condition; if (typeof condition === 'function') { condition = condition.call(parent, parent); } if (condition) { return this.type.encode(stream, val, parent); } }; return Optional; })(); module.exports = Optional; }).call(this);