// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

package com.android.tools.r8.utils;

import java.util.function.Consumer;
import java.util.function.Predicate;

public class ForEachUtils {

  public static <T> boolean allMatch(Consumer<Consumer<T>> forEach, Predicate<T> predicate) {
    BooleanBox acc = new BooleanBox(true);
    forEach.accept(
        value -> {
          acc.and(predicate.test(value));
        });
    return acc.isTrue();
  }
}
