immutables / immutables-vavr

Immutables encodings for Vavr
Other
33 stars 7 forks source link
annotation encodings immutables vavr

immutables-vavr

Maven Central Maven Central (snapshot) Codacy Badge

A set of Immutables encodings for Vavr.

Note: Prior to a 1.0.0 release, the encodings are still in the experimental phase and therefore should not be relied upon to provide a stable API.

JVM Platform Status
OpenJDK LTS Linux Build (OpenJDK LTS, Linux)
OpenJDK Current Linux Build (OpenJDK Current, Linux)
OpenJDK Current Windows Build (OpenJDK Current, Windows)

Ten Second Tutorial

Include the encodings in your project:

<dependency>
  <groupId>org.immutables.vavr</groupId>
  <artifactId>vavr-encodings</artifactId>
  <version><!-- Insert latest version here --></version>
  <scope>provided</scope>
</dependency>

Annotate your types with @VavrEncodingEnabled. Alternatively, you can annotate a @Style annotation with @VavrEncodingEnabled and have it apply to any types that are using that style. See Styles.

Now, any use of Vavr collections in your abstract value types will magically result in the generated Builder types being augmented with methods to build immutable collections element-by-element. Use of Vavr's Option type will receive the same special treatment as the standard Java Optional type.