Contains definitions that could be shared between Scala 2 and Scala 3 implementation of the derivation logic, which aren't strictly related to code parsing and generation.
- Type parameters:
- In
input type of the type class we are deriving
- Out
output type of the type class we are deriving
- Pipe
the type class that we are deriving for
- Companion:
- object
Type members
Classlikes
Possible configuration options that we can work with inside a macro. Parsed from pipez.PipeDerivationConfig
Possible configuration options that we can work with inside a macro. Parsed from pipez.PipeDerivationConfig
- Companion:
- object
Possible errors that can happen during derivation
Possible errors that can happen during derivation
- Companion:
- object
Helper which allows: use of for-comprehension, parallel error composition, logging
Helper which allows: use of for-comprehension, parallel error composition, logging
- Companion:
- object
Type representing how we got the specific value from the in: In
argument
Type representing how we got the specific value from the in: In
argument
- Companion:
- object
Collection of config options obtained after parsing pipez.PipeDerivationConfig
Collection of config options obtained after parsing pipez.PipeDerivationConfig
Types
Platform-specific expression representation (c.universe.Expr[A] in 2, quotes.Expr[A] in 3
Platform-specific expression representation (c.universe.Expr[A] in 2, quotes.Expr[A] in 3
Value members
Abstract methods
Translates Path
as seen in macro to runtime value we can pass to updateContext`
Translates Path
as seen in macro to runtime value we can pass to updateContext`
Allows displaying the generated code in platform-independent way
Allows displaying the generated code in platform-independent way
Like previewCode(pipeDerivation) but allowing hiding some shenanigans we do
Like previewCode(pipeDerivation) but allowing hiding some shenanigans we do
Turns the code defining PipeDerivationConfig[Pipe, In, Out]
into Settings
.
Turns the code defining PipeDerivationConfig[Pipe, In, Out]
into Settings
.
Requires that config is created as one chain while passing the parameter.
If we pass Single Abstract Method as argument, after expansion inference sometimes fails, compiler might need a hint
If we pass Single Abstract Method as argument, after expansion inference sometimes fails, compiler might need a hint
Concrete methods
Reads configs if passed, or fallback to defaults (empty Settings
) otherwise
Reads configs if passed, or fallback to defaults (empty Settings
) otherwise