Packages

object Diff

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Diff
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. sealed trait Bimap extends AnyRef

    Allows for mapping indices bidirectionally between the base and target sequences.

  2. sealed trait Chunk[T] extends AnyRef

    Alternative representation of the diffing output that holds _all_ data elements, changed and unchanged ones.

  3. trait Eq[T] extends AnyRef

    Very simple equality type class, which allows for customizing the comparison logic employed by the diff algorith.

    Very simple equality type class, which allows for customizing the comparison logic employed by the diff algorith. By default universal value equality is used.

  4. sealed trait Op extends AnyRef

    An ADT for all "operations" the diff algorithm can derive.

    An ADT for all "operations" the diff algorithm can derive. Operations don't contain any elements themselves, they only hold indices into the base and target sequences for maximum efficiency.

    If you need something that holds all data required to transform base into target, including the actual elements, check out Patch.

  5. final case class Patch[T](baseSize: Int, targetSize: Int, steps: ArraySeq[Step[T]]) extends Product with Serializable

    A Patch encapsulates all information required to transform the base sequence into the target sequence.

    A Patch encapsulates all information required to transform the base sequence into the target sequence.

    In addition to the data of which elements need to be deleted and/or moved it also contains the actual elements that are to be inserted.

  6. final class Slice[T] extends scala.collection.IndexedSeqView.Slice[T]

    An IndexedSeqView.Slice that surfaces the underlying sequence as well as the index range.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply[T](base: IndexedSeq[T], target: IndexedSeq[T])(implicit arg0: Eq[T]): Diff[T]

    Runs a relatively efficient, stacksafe, linear space implementation of the Myers diff algorithm and returns the result as a Diff instance, which serves as the tee-off point for further, downstream logic.

    Runs a relatively efficient, stacksafe, linear space implementation of the Myers diff algorithm and returns the result as a Diff instance, which serves as the tee-off point for further, downstream logic.

    The core algorithm is based on the work of Robert Elder.

    See also

    https://blog.robertelder.org/diff-algorithm/

    https://github.com/RobertElderSoftware/roberteldersoftwarediff/blob/master/myers_diff_and_variations.py

    https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm-part-1/

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. def longestCommonSubsequence[T](base: IndexedSeq[T], target: IndexedSeq[T])(implicit arg0: Eq[T], arg1: ClassTag[T]): ArraySeq[T]

    Returns a longest common subsequence of the base and target sequences.

    Returns a longest common subsequence of the base and target sequences. or None, if the two sequences have no elements in common. Stacksafe and reasonably efficient.

  13. def minEditDistance[T](base: IndexedSeq[T], target: IndexedSeq[T])(implicit eq: Eq[T]): Int

    Returns the minimum number of edits required to transform base and target, whereby one "edit" corresponds to deleting or inserting one single element.

    Returns the minimum number of edits required to transform base and target, whereby one "edit" corresponds to deleting or inserting one single element.

    Equal to Diff(base, target).delInsOps.size but more efficient.

  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  17. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. object Chunk
  23. object Eq
  24. object Op
  25. object Patch extends Serializable
  26. object Slice extends Serializable

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from AnyRef

Inherited from Any

Ungrouped