blob: bf9a97d6a6e0773a7ba5d8dd65cea9c67995ca47 [file] [log] [blame]
// Copyright (c) 2025, 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.partial;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.partial.R8PartialSubCompilationConfiguration.R8PartialR8SubCompilationConfiguration;
import java.util.function.Consumer;
import java.util.function.Function;
public class R8PartialUtils {
public static void acceptR8PartialR8SubCompilationConfiguration(
AppView<?> appView, Consumer<R8PartialR8SubCompilationConfiguration> fn) {
R8PartialSubCompilationConfiguration subCompilationConfiguration =
appView.options().partialSubCompilationConfiguration;
if (subCompilationConfiguration != null && subCompilationConfiguration.isR8()) {
fn.accept(subCompilationConfiguration.asR8());
}
}
public static <T> T applyR8PartialR8SubCompilationConfiguration(
AppView<?> appView, Function<R8PartialR8SubCompilationConfiguration, T> fn, T defaultValue) {
R8PartialSubCompilationConfiguration subCompilationConfiguration =
appView.options().partialSubCompilationConfiguration;
if (subCompilationConfiguration != null && subCompilationConfiguration.isR8()) {
return fn.apply(subCompilationConfiguration.asR8());
}
return defaultValue;
}
}