aboutsummaryrefslogblamecommitdiff
path: root/src/main/scala/xyz/driver/pdsuicommon/synchronization/utils/FakeIdGen.scala
blob: 196aab1af3ef078acbe434db8eb86f6f2ea6cf94 (plain) (tree)

























                                                                          
package xyz.driver.pdsuicommon.synchronization.utils

import xyz.driver.pdsuicommon.synchronization.domain.FakeId

/**
  * Used to generate a fake id from an entity.
  * A fake id is used in comparison between entities with different types,
  * for example, RawTrial and Trial.
  *
  * @see FakeId
  */
trait FakeIdGen[-T] extends (T => FakeId) {

  def getFor(x: T): FakeId

  override def apply(x: T): FakeId = getFor(x)

}

object FakeIdGen {

  def create[T](f: T => FakeId) = new FakeIdGen[T] {
    override def getFor(x: T): FakeId = f(x)
  }

}