// Copyright (c) 2021, 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;

/**
 * Interface for providing a custom map-id to the compiler.
 *
 * <p>The map-id is inserted in the mapping file output and included in the compiler marker
 * information. The map-id can be used to provide an key/identifier to automate the lookup of
 * mapping file information for builds. For example, by including it in the source-file part of
 * program stacktraces. See {@code SourceFileProvider}.
 */
@Keep
@FunctionalInterface
public interface MapIdProvider {

  /**
   * Return the map-id content.
   *
   * @param environment An environment of values available for use when defining the map id.
   * @return A non-null string that will be used as the map id.
   */
  String get(MapIdEnvironment environment);
}
