protocbridge
package protocbridge
- Alphabetic
- Public
- Protected
Type Members
- case class Artifact(groupId: String, artifactId: String, version: String, crossVersion: Boolean = false, configuration: Option[String] = None, extraAttributes: Map[String, String] = Map.empty) extends Product with Serializable
- 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.
- final case class DescriptorSetGenerator() extends Generator with Product with Serializable
Represents a generator built into protoc, to be used with a file target.
- sealed trait Generator extends AnyRef
Represents a code generator invocation
- final case class JvmGenerator(name: String, gen: ProtocCodeGenerator) extends Generator with Product with Serializable
Represents a generator implemented by ProtocCodeGenerator.
- final case class PluginGenerator(name: String, suggestedDependencies: Seq[Artifact], path: Option[String]) extends Generator with Product with Serializable
- trait ProtocCodeGenerator extends AnyRef
This is the interface that code generators need to implement.
- final case class SandboxedJvmGenerator 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).
This mechanism is needed because 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. resolver: Using a ClassLoader, return a new instance of a ProtocCodeGenerator.
- 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
- object ProtocBridge
- object ProtocCodeGenerator
- object SandboxedJvmGenerator extends Serializable
- object SystemDetector
- object Target extends Serializable
- object gens