/// <summary>Push a single item onto the queue.</summary>
            public void Push(IFdbTransaction tr, T value)
            {
                Contract.NotNull(tr, nameof(tr));

#if DEBUG
                tr.Annotate("Push({0})", value);
#endif

                //BUGBUG: can be called multiple times per transaction, so need a unique stamp _per_ transaction!!
                tr.SetVersionStampedKey(this.Subspace[tr.CreateUniqueVersionStamp()], this.Encoder.EncodeValue(value));
            }