package net.onrc.onos.core.util;

/**
 * A generic class representing a pair of two values.
 */
public class Pair<F, S> {
    public F first;        // The first value in the pair
    public S second;        // The second value in the pair

    /**
     * Constructor for a pair of two values.
     *
     * @param first  the first value in the pair.
     * @param second the second value in the pair.
     */
    public Pair(F first, S second) {
        this.first = first;
        this.second = second;
    }

    @Override
    public String toString() {
        return String.format("<%s, %s>", first, second);
    }
}
