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

package it.unimi.dsi.fastutil.booleans;

import java.util.Objects;
import java.util.function.Predicate;

@FunctionalInterface
public interface BooleanPredicate extends Predicate<Boolean>
{
    boolean test(final boolean p0);
    
    default BooleanPredicate identity() {
        return b -> b;
    }
    
    default BooleanPredicate negation() {
        return b -> !b;
    }
    
    @Deprecated
    default boolean test(final Boolean t) {
        return this.test((boolean)t);
    }
    
    default BooleanPredicate and(final BooleanPredicate other) {
        Objects.requireNonNull(other);
        return t -> this.test(t) && other.test(t);
    }
    
    @Deprecated
    default Predicate<Boolean> and(final Predicate<? super Boolean> other) {
        return super.and(other);
    }
    
    default BooleanPredicate negate() {
        return t -> !this.test(t);
    }
    
    default BooleanPredicate or(final BooleanPredicate other) {
        Objects.requireNonNull(other);
        return t -> this.test(t) || other.test(t);
    }
    
    @Deprecated
    default Predicate<Boolean> or(final Predicate<? super Boolean> other) {
        return super.or(other);
    }
}
