cats¶
This module contains integration layer between org.typelevel.cats and diffx
sbt¶
"com.softwaremill.diffx" %% "diffx-cats" % "0.7.0" % Test
mill¶
ivy"com.softwaremill.diffx::diffx-cats::0.7.0"
Usage¶
Assuming you have some data types from the cats library in your hierarchy:
import cats.data._
case class TestData(ints: NonEmptyList[String])
val t1 = TestData(NonEmptyList.one("a"))
val t2 = TestData(NonEmptyList.one("b"))
all you need to do is to put additional diffx implicits into current scope:
import com.softwaremill.diffx.compare
import com.softwaremill.diffx.generic.auto._
import com.softwaremill.diffx.cats._
compare(t1, t2)
// res0: com.softwaremill.diffx.DiffResult = DiffResultObject(
// name = "TestData",
// fields = ListMap(
// "ints" -> DiffResultObject(
// name = "NonEmptyList",
// fields = ListMap(
// "0" -> DiffResultString(
// diffs = List(
// DiffResultStringLine(
// diffs = List(DiffResultValue(left = "a", right = "b"))
// )
// )
// )
// )
// )
// )
// )