// 
// Decompiled by Procyon v0.6.0
// 

package it.unimi.dsi.fastutil.booleans;

import java.lang.invoke.SerializedLambda;
import java.io.Serializable;
import java.util.Comparator;

@FunctionalInterface
public interface BooleanComparator extends Comparator<Boolean>
{
    int compare(final boolean p0, final boolean p1);
    
    default BooleanComparator reversed() {
        return BooleanComparators.oppositeComparator(this);
    }
    
    @Deprecated
    default int compare(final Boolean ok1, final Boolean ok2) {
        return this.compare((boolean)ok1, (boolean)ok2);
    }
    
    default BooleanComparator thenComparing(final BooleanComparator second) {
        return (k1, k2) -> {
            final int comp = this.compare(k1, k2);
            return (comp == 0) ? second.compare(k1, k2) : comp;
        };
    }
    
    default Comparator<Boolean> thenComparing(final Comparator<? super Boolean> second) {
        if (second instanceof BooleanComparator) {
            return this.thenComparing((BooleanComparator)second);
        }
        return super.thenComparing(second);
    }
}
