/**
 * This code is generated using [[https://www.scala-sbt.org/contraband/ sbt-contraband]].
 */

// DO NOT EDIT MANUALLY
package sbt.internal.bsp
/**
 * ScalaDiagnostic is a data structure that contains Scala-specific
 * metadata generated by Scala compilation. This metadata is
 * embedded in the `data: Option[Json]` field of the Diagnostic definition, when
 * the dataKind field contains "scala".
 * @param actions Actions (also known as quick fixes) that are able to either fix or address
                  the issue that is causing this diagnostic.
 */
final class ScalaDiagnostic private (
  val actions: Vector[sbt.internal.bsp.ScalaAction]) extends Serializable {
  
  
  
  override def equals(o: Any): Boolean = this.eq(o.asInstanceOf[AnyRef]) || (o match {
    case x: ScalaDiagnostic => (this.actions == x.actions)
    case _ => false
  })
  override def hashCode: Int = {
    37 * (37 * (17 + "sbt.internal.bsp.ScalaDiagnostic".##) + actions.##)
  }
  override def toString: String = {
    "ScalaDiagnostic(" + actions + ")"
  }
  private[this] def copy(actions: Vector[sbt.internal.bsp.ScalaAction] = actions): ScalaDiagnostic = {
    new ScalaDiagnostic(actions)
  }
  def withActions(actions: Vector[sbt.internal.bsp.ScalaAction]): ScalaDiagnostic = {
    copy(actions = actions)
  }
}
object ScalaDiagnostic {
  
  def apply(actions: Vector[sbt.internal.bsp.ScalaAction]): ScalaDiagnostic = new ScalaDiagnostic(actions)
}
