All Downloads are FREE. Search and download functionalities are using the official Maven repository.

s_mach.datadiff.MapPatch.scala Maven / Gradle / Ivy

/*
                    ,i::,
               :;;;;;;;
              ;:,,::;.
            1ft1;::;1tL
              t1;::;1,
               :;::;               _____       __  ___              __
          fCLff ;:: tfLLC         / ___/      /  |/  /____ _ _____ / /_
         CLft11 :,, i1tffLi       \__ \ ____ / /|_/ // __ `// ___// __ \
         1t1i   .;;   .1tf       ___/ //___// /  / // /_/ // /__ / / / /
       CLt1i    :,:    .1tfL.   /____/     /_/  /_/ \__,_/ \___//_/ /_/
       Lft1,:;:       , 1tfL:
       ;it1i ,,,:::;;;::1tti      s_mach.datadiff
         .t1i .,::;;; ;1tt        Copyright (c) 2014 S-Mach, Inc.
         Lft11ii;::;ii1tfL:       Author: [email protected]
          .L1 1tt1ttt,,Li
            ...1LLLL...
*/
package s_mach.datadiff

/**
 * A case class for a patch of a Map
 * @param add (key,value) pairs added to the map
 * @param remove keys removed from the map
 * @param change (key,value) pairs changed
 * @tparam A key type
 * @tparam B value type
 * @tparam P patch for the value type
 */
case class MapPatch[A,+B,+P]( // Note: Map is invariant for A
  add: Map[A,B],
  remove: Set[A],
  change: Map[A,P]
)

object MapPatch {
  val _noChange = MapPatch(Map.empty[Any,Any], Set.empty, Map.empty)
  def noChange[A] : MapPatch[A,Nothing,Nothing] =
    _noChange.asInstanceOf[MapPatch[A,Nothing,Nothing]]
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy