Package-level declarations

Types

Link copied to clipboard
class ShuttleCargoCompilerPluginRegistrar : CompilerPluginRegistrar

Registers the Shuttle compiler plugin extensions with the Kotlin compiler. Enables the IR generation extension that automatically implements java.io.Serializable on any class annotated with com.grarcht.shuttle.framework.ShuttleCargo.

Link copied to clipboard
class ShuttleCargoIrGenerationExtension : IrGenerationExtension

An IR generation extension that transforms the module after it has been converted to IR. Delegates to ShuttleCargoIrTransformer to add java.io.Serializable to annotated classes.

Link copied to clipboard
class ShuttleCargoIrTransformer(pluginContext: IrPluginContext) : IrElementTransformerVoid

An IR element transformer that visits every class in the module and, for any class annotated with com.grarcht.shuttle.framework.ShuttleCargo, injects com.grarcht.shuttle.framework.ShuttleCargoData as a supertype if it is not already present. Since ShuttleCargoData extends java.io.Serializable, both contracts are satisfied transitively with a single injection.