
scalaz.syntax.EqualSyntax.scala Maven / Gradle / Ivy
The newest version!
package org.specs2.internal.scalaz
package syntax
/** Wraps a value `self` and provides methods related to `Equal` */
trait EqualOps[F] extends Ops[F] {
implicit def F: Equal[F]
////
final def ===(other: F): Boolean = F.equal(self, other)
final def /==(other: F): Boolean = !F.equal(self, other)
final def =/=(other: F): Boolean = /==(other)
final def ≟(other: F): Boolean = F.equal(self, other)
final def ≠(other: F): Boolean = !F.equal(self, other)
/** Raises an exception unless self === other. */
final def assert_===[B](other: B)(implicit S: Show[F], ev: B <:< F) =
if (/==(other)) sys.error(S.shows(self) + " ≠ " + S.shows(ev(other)))
////
}
trait ToEqualOps {
implicit def ToEqualOps[F](v: F)(implicit F0: Equal[F]) =
new EqualOps[F] { def self = v; implicit def F: Equal[F] = F0 }
////
////
}
trait EqualSyntax[F] {
implicit def ToEqualOps(v: F): EqualOps[F] = new EqualOps[F] { def self = v; implicit def F: Equal[F] = EqualSyntax.this.F }
def F: Equal[F]
////
////
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy