//
// Created by Dan Crosby on 3/15/20.
//

#include "Coordinates.hpp"

namespace shardok {

auto MakeCoordsProto(const int row, const int column) -> net::eagle0::shardok::common::Coords {
    net::eagle0::shardok::common::Coords c;
    c.set_row(row);
    c.set_column(column);
    return c;
}

}  // namespace shardok

namespace net::eagle0::shardok::storage::fb {

auto operator==(const Coords &lhs, const net::eagle0::shardok::common::Coords &rhs) -> bool {
    return lhs.row() == rhs.row() && lhs.column() == rhs.column();
}
}  // namespace net::eagle0::shardok::storage::fb

namespace net::eagle0::shardok::common {
auto operator==(
        const net::eagle0::shardok::common::Coords &lhs,
        const net::eagle0::shardok::storage::fb::Coords &rhs) -> bool {
    return lhs.row() == rhs.row() && lhs.column() == rhs.column();
}

auto operator==(
        const net::eagle0::shardok::common::Coords &lhs,
        const net::eagle0::shardok::common::Coords &rhs) -> bool {
    return lhs.row() == rhs.row() && lhs.column() == rhs.column();
}

auto operator!=(
        const net::eagle0::shardok::common::Coords &lhs,
        const net::eagle0::shardok::common::Coords &rhs) -> bool {
    return lhs.row() != rhs.row() || lhs.column() != rhs.column();
}
}  // namespace net::eagle0::shardok::common
