implier
Kotlin Symbol Processor plugin to create Mutable
and Immutable
variants of objects.
Examples
@ImmutableImpl
@MutableImpl
public interface Sample {
val sample: String
}
Will generate next classes and functions:
public fun Sample.toImmutable(): ImmutableSample = ImmutableSample(sample)
public class ImmutableSample(
public override val sample: String
) : Sample
public fun Sample.toMutable(): MutableSample = MutableSample(sample)
public class MutableSample(
public override var sample: String
) : Sample
Implementation
For first, we need to add repository:
repositories {
maven("https://maven.y9vad9.com")
}
And then we need to add dependency:
dependencies {
implementation("com.y9vad9.implier:implier:$version") // annotations
ksp("com.y9vad9.implier:ksp:$version") // ksp implementation of annotations
}