
wei-k.zeroapply_2.12.0-RC1.0.2.1.source-code.EitherImpl.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of zeroapply_2.12.0-RC1 Show documentation
Show all versions of zeroapply_2.12.0-RC1 Show documentation
zero cost Apply/Applicative syntax
The newest version!
package zeroapply
import scala.reflect.macros.blackbox.Context
final class EitherImpl(override val c: Context) extends EitherBase{
import c.universe._
override protected def getValDef(name: TermName, left: Type, right: Type, body: Tree) =
q"""val $name: _root_.scala.Either[$left, $right] = $body"""
override protected def wrapRight(value: Tree) =
q"_root_.scala.Right($value)"
override protected def rightValue(value: Tree, left: Type, right: Type) =
q"$value.asInstanceOf[_root_.scala.Right[$left, $right]].b"
override protected def asEither(value: Tree, left: Type, right: Tree) =
q"$value.asInstanceOf[_root_.scala.Either[$left, $right]]"
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy