30 lines
401 B
Go
30 lines
401 B
Go
package dirty
|
|
|
|
type mapEntry[K comparable, V any] struct {
|
|
key K
|
|
original V
|
|
value V
|
|
dirty bool
|
|
delete bool
|
|
}
|
|
|
|
func (e *mapEntry[K, V]) Key() K {
|
|
return e.key
|
|
}
|
|
|
|
func (e *mapEntry[K, V]) Original() V {
|
|
return e.original
|
|
}
|
|
|
|
func (e *mapEntry[K, V]) Value() V {
|
|
if e.delete {
|
|
var zero V
|
|
return zero
|
|
}
|
|
return e.value
|
|
}
|
|
|
|
func (e *mapEntry[K, V]) Dirty() bool {
|
|
return e.dirty
|
|
}
|