AdtMacros

object AdtMacros
class Object
trait Matchable
class Any

Type members

Types

type AdtIso[Adt, A] = (Adt => A, A => Adt, NonEmptyVector[Adt], NonEmptyVector[A])
type AdtIsoSet[Adt, T] = (Adt => T, T => Adt, NonEmptySet[Adt], NonEmptySet[T])

Value members

Concrete methods

inline def _adtIso[Adt, A](inline f: Adt => A): (Adt, A)
inline def _adtIsoSet[Adt, A](inline f: Adt => A)(using inline ueAdt: UnivEq[Adt], inline ueA: UnivEq[A]): (Adt, A)
inline def _adtValues[T]: NonEmptyVector[T]
inline def _adtValuesManually[A](inline values: A*): NonEmptyVector[A]
inline def _valuesForAdt[Adt, A](inline f: Adt => A): NonEmptyVector[A]
inline def _valuesForAdtF[Adt, A](inline f: Adt => A): (NonEmptyVector[A], Adt => A)
inline def adtIso[Adt, A](inline f: Adt => A): (Adt, A)
inline def adtIsoSet[Adt, A](inline f: Adt => A)(using inline ueAdt: UnivEq[Adt], inline ueA: UnivEq[A]): (Adt, A)
inline def adtValues[T]: NonEmptyVector[T]
inline def adtValuesManually[A](inline allowDuplicateTypes: Boolean, inline allowDuplicateValues: Boolean, inline debug: Boolean)(inline values: A*): NonEmptyVector[A]

Because sometimes order matters.

Because sometimes order matters.

inline def valuesForAdt[Adt, A](inline f: Adt => A): NonEmptyVector[A]
inline def valuesForAdtF[Adt, A](inline f: Adt => A): (NonEmptyVector[A], Adt => A)