p

protocbridge

package protocbridge

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package codegen
  2. package frontend

Type Members

  1. case class Artifact(groupId: String, artifactId: String, version: String, crossVersion: Boolean = false) extends Product with Serializable
  2. final case class BuiltinGenerator(name: String, suggestedDependencies: Seq[Artifact] = Nil) extends Generator with Product with Serializable

    Represents a generator built into protoc, to be used with a directory target.

  3. final case class DescriptorSetGenerator() extends Generator with Product with Serializable

    Represents a generator built into protoc, to be used with a file target.

  4. sealed trait Generator extends AnyRef

    Represents a code generator invocation

  5. final case class JvmGenerator(name: String, gen: ProtocCodeGenerator) extends Generator with Product with Serializable

    Represents a generator implemented by ProtocCodeGenerator.

  6. final case class PluginGenerator(name: String, suggestedDependencies: Seq[Artifact], path: Option[String]) extends Generator with Product with Serializable
  7. trait ProtocCodeGenerator extends AnyRef

    This is the interface that code generators need to implement.

  8. final case class SandboxedJvmGenerator(name: String, artifact: Artifact, generatorClass: String, suggestedDependencies: Seq[Artifact]) extends Generator with Product with Serializable

    Represents a JvmGenerator that needs to be dynamically loaded from an artifact.

    Represents a JvmGenerator that needs to be dynamically loaded from an artifact. This allows to run each JvmGenerator in its own classloader and thus avoid dependency conflicts between plugins or between plugins and the container (such as sbt).

    The primary problem triggering this is that SBT ships with an old version of protobuf-java that is not binary compatible with recent versions. In addition, SBT depends on ScalaPB's runtime, so ScalaPB plugins can't use ScalaPB itself without running a risk of conflict.

    artifact: Artifact containing the generator class. generatorClass: A scala object that implements ProtocCodeGenerator

  9. case class Target(generator: Generator, outputPath: File, options: Seq[String] = Seq.empty) extends Product with Serializable

    Target is a generator call and a path to output the generated files

Value Members

  1. object ProtocBridge
  2. object ProtocCodeGenerator
  3. object SandboxedJvmGenerator extends Serializable
  4. object Target extends Serializable
  5. object gens

Ungrouped