Skip to content

Instantly share code, notes, and snippets.

@svsq
Created March 8, 2023 10:45
Show Gist options
  • Save svsq/2251b37af7c345da91780244865c0073 to your computer and use it in GitHub Desktop.
Save svsq/2251b37af7c345da91780244865c0073 to your computer and use it in GitHub Desktop.
Base abstract mapper
abstract class Mapper<F, T> {
abstract fun map(from: F): T
abstract fun reverse(to: T): F
fun map(fromList: List<F>): List<T> =
ArrayList<T>(fromList.size).apply {
fromList.forEach {
add(map(it))
}
}
fun reverse(toList: List<T>): List<F> =
ArrayList<F>(toList.size).apply {
toList.forEach {
add(reverse(it))
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment