// Copyright (c) 2023, 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 consumers of the marker information. */
@Keep
public interface MarkerInfoConsumer {

  /**
   * Callback that provides the marker information of a resource.
   *
   * <p>This callback is called exactly once for each resource in the {@link ExtractMarkerCommand},
   * also when no marker information is present in that resource.
   */
  void acceptMarkerInfo(MarkerInfoConsumerData data);

  /**
   * Callback to inform the extraction of marker information is complete.
   *
   * <p>After the callback is invoked no further calls to {@link
   * MarkerInfoConsumer#acceptMarkerInfo} will occur.
   */
  void finished();
}
