Skip to content
This repository has been archived by the owner on Mar 16, 2020. It is now read-only.

zio/zio-macros

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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"