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