zio / zio-macros   0.6.2

Apache License 2.0 GitHub

Macros to scrap ZIO boilerplate

Scala versions: 2.13 2.12 2.11
Scala.js versions: 0.6

ZIO-MACROS

CI Release Issues Discord
Build Status Release Artifacts Average time to resolve an issue badge-discord

Zio-macros has been moved into ZIO Core. This repo will no longer be maintained.


Scrap boilerplate in your ZIO projects. Learn more about ZIO at:

This project is a loose collection of different macro-based solutions to simplify your code. Head to the specific docs to learn more about the ones that interest you.

  • accessible - Generate public accessors for ZIO services.
  • mockable - Automatically derive mockable implementations for your services.

Installation

The macros have been split into two subprojects.

  • zio-macros-core has no dependencies other than zio, it contains accessible, delegate and mix
"dev.zio" %% "zio-macros-core" % "<version>"
  • zio-macros-test depends on zio-test and zio-macros-core, it contains mockable
"dev.zio" %% "zio-macros-test" % "<version>"

As this project is heavily using macros you will need to enable them:

  • If using a scala version < 2.13 you need to add the macro paradise compiler plugin.
compilerPlugin(("org.scalamacros" % "paradise"  % "2.1.1") cross CrossVersion.full)
  • If using scala 2.13 you need to add the macro annotation compiler options.
scalacOptions += "-Ymacro-annotations"