object Comparison extends ComparisonInstances
- Alphabetic
- By Inheritance
- Comparison
- ComparisonInstances
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- final case class AlignUnionMembers[T, A](attempts: Map[Path, List[A]], reporter: Reporter[T] = Reporter.id[T]) extends Comparison[T, A] with Product with Serializable
Perform lists of recursive comparisons indexed by paths, then select the first positive result for each entry (or a mismatch if none) then combine results of all entries and enrich it.
- final case class Compare[T, A](a: A, reporter: Reporter[T] = Reporter.id[T]) extends Comparison[T, A] with Product with Serializable
Perform a single recursive comparison and enrich its result
- final case class CompareBoth[T, A](x: A, y: A) extends Comparison[T, A] with Product with Serializable
Perform two recursive comparisons and combine their results
- final case class CompareList[T, A](items: List[A], reporter: Reporter[T] = Reporter.id[T]) extends Comparison[T, A] with Product with Serializable
Perform a list of recursive comparisons, combine and then enrich their results
- type CompatibleDelta[T] = Map[Path, List[Transformation[T]]]
- type Context[T] = (Path, Option[T], Option[T])
The schemas being compared at a given path of the current comparison
- final case class End[T, A](result: Result[T]) extends Comparison[T, A] with Product with Serializable
Early result: there is nothing left to compare
- final case class MatchInList[T, A](attempts: Vector[A], reporter: Reporter[T] = Reporter.id[T]) extends Comparison[T, A] with Product with Serializable
Perform a list of recursive comparisons but return the first positive result (or a mismatch if none), enriched
- type Reporter[T] = (Result[T]) => Result[T]
Function for result enrichment
- type Result[T] = (CompatibleDelta[T], List[Incompatibility])
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply[T](writer: T, reader: T)(implicit ev: Basis[MuF, T], F: Functor[[β$0$]Comparison[T, β$0$]]): Result[T]
Performs the comparison of two schemas
Performs the comparison of two schemas
Compares two schemas to verify that messages written using the writer schema are compatible with the reader schema. Both schemas' roots are shallowly compared to unfold a
Comparison[T, *], to compare their children or to signal a result. Comparison branches are then folded back by combining their results.WARNING: The current implementation does a lot of "useless" comparisons when it comes to compare coproducts. This is due to the structure of hylo: when we want to align something with a coproduct, we test all the possible combinations algthough we're only interested in finding the first successful one.
- T
the concrete schema type, must be a higherkindness.droste.Basis over higherkindness.skeuomorph.mu.MuF
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- implicit def comparisonCatsFunctor[T]: Functor[[β$1$]Comparison[T, β$1$]]
- Definition Classes
- ComparisonInstances
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- object Match
- object Result
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
- Deprecated