internal TypedKeySubspace(Slice prefix, ICompositeKeyEncoder <T1, T2> encoder, ISubspaceContext context)
     : base(prefix, context)
 {
     Contract.Debug.Requires(encoder != null);
     this.KeyEncoder = encoder;
 }
 internal BinaryKeySubspace(Slice prefix, KeyRange range, ISubspaceContext context)
     : base(prefix, range, context)
 {
 }
 internal KeySubspace(Slice prefix, KeyRange range, ISubspaceContext context)
 {
     this.Key     = prefix;
     this.Range   = range;
     this.Context = context ?? throw new ArgumentNullException(nameof(context));
 }
 internal BinaryKeySubspace(Slice prefix, ISubspaceContext context)
     : base(prefix, context)
 {
 }
 internal KeySubspace(Slice prefix, ISubspaceContext context)
 {
     this.Key     = prefix;
     this.Range   = KeyRange.StartsWith(prefix);
     this.Context = context ?? throw new ArgumentNullException(nameof(context));
 }