Diffable

Note: variance is not managed by having a Diffable typeclass with a contravariant parameter Diffable[-T] In that the implicit for case classes (see product) can not be found.

Instead we deal with variance at the level of each implicit.

For example given exceptionDiffable[T <: Throwable]: Diffable[T] = new ThrowableDiffable[T] will be found for any custom exception extending Throwable. Similarly we can get a diff for RightString, Int and RightString, Int with given eitherDiffable[L: Diffable, R: Diffable, T <: Either[L, R]] because we unify both Rights with Either[String, Int]

Companion:
class
class Object
trait Matchable
class Any

Value members

Concrete methods

def diff[T](actual: T, expected: T)(using di: Diffable[T]): ComparisonResult

Inherited methods

inline def derived[T](using p: ProductOf[T]): Diffable[T]
Inherited from:
DiffableLowImplicits2
inline def summonAll[T <: Tuple]: List[Diffable[_]]
Inherited from:
DiffableLowImplicits2

Givens

Givens

given arrayDiffable[E](using evidence$8: Diffable[E]): Diffable[Array[E]]
given booleanDiffable: Diffable[Boolean]
given doubleDiffable: Diffable[Double]
given eitherLeftDiffable[L](using evidence$2: Diffable[L]): Diffable[Left[L, Nothing]]
given eitherRightDiffable[R](using evidence$1: Diffable[R]): Diffable[Right[Nothing, R]]
given exceptionDiffable[T <: Throwable]: Diffable[T]
given failureDiffable: Diffable[Failure[Nothing]]
given floatDiffable: Diffable[Float]
given intDiffable: Diffable[Int]
given longDiffable: Diffable[Long]
given mapDiffable[K, V, M <: Map[K, V]](using evidence$4: Diffable[K], evidence$5: Diffable[V]): Diffable[M]
given nothingDiffable: Diffable[Nothing]
given optionNoneDiffable[T <: Option[Nothing]]: Diffable[T]
given seqDiffable[E, S <: Seq[E]](using evidence$7: Diffable[E]): Diffable[S]
given setDiffable[E, S <: Set[E]](using evidence$6: Diffable[E]): Diffable[S]
given stackTraceElementDiffable: Diffable[StackTraceElement]
given stringDiffable: Diffable[String]
given tryDiffable[T, S <: Try[T]](using evidence$3: Diffable[T]): Diffable[S]

Inherited givens

given eitherDiffable[L, R, T <: Either[L, R]](using evidence$10: Diffable[L], evidence$11: Diffable[R]): Diffable[T]
Inherited from:
DiffableLowImplicits
given optionDiffable[T, S <: Option[T]](using evidence$9: Diffable[T]): Diffable[S]
Inherited from:
DiffableLowImplicits
given product[T](using m: ProductOf[T]): Diffable[T]

this Diff instance addresses case classes differences

this Diff instance addresses case classes differences

Inherited from:
DiffableLowImplicits2