public static Task <ICounterResult> DecrementAsync(this IBinaryCollection binaryCollection, string id,
                                                           Action <DecrementOptions> configureOptions)
        {
            var options = new DecrementOptions();

            configureOptions(options);

            return(binaryCollection.DecrementAsync(id, options));
        }
        public async Task <ICounterResult> DecrementAsync(string id, DecrementOptions options)
        {
            using (var op = new Decrement
            {
                Cid = Cid,
                Key = id,
                Delta = options.Delta,
                Initial = options.Initial,
                DurabilityLevel = options.DurabilityLevel,
                Transcoder = _transcoder
            })
            {
                await _bucket.SendAsync(op, options.Token, options.Timeout);

                return(new CounterResult(op.GetValue(), op.Cas, null, op.MutationToken));
            }
        }