// Copyright (c) 2018, 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.kotlin;

class ProguardRulesBuilder {

  private final StringBuilder sb = new StringBuilder();

  public ProguardRulesBuilder appendWithLineSeparator(String str) {
    sb.append(str).append(System.lineSeparator());
    return this;
  }

  public ProguardRulesBuilder dontObfuscate() {
    return appendWithLineSeparator("-dontobfuscate");
  }

  public ProguardRulesBuilder allowAccessModification() {
    return appendWithLineSeparator("-allowaccessmodification");
  }

  @Override
  public String toString() {
    return sb.toString();
  }
}
