// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package io.v.syncbase.v23.services.syncbase.nosql;

class RowRangeImpl implements RowRange {
    private final String start, limit;

    RowRangeImpl(String start, String limit) {
        this.start = start;
        this.limit = limit;
    }

    RowRangeImpl(String row) {
        this.start = this.limit = row;
    }

    @Override
    public String getStart() { return this.start; }

    @Override
    public String getLimit() { return this.limit; }
}