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

zio.schema.AccessorBuilder.scala Maven / Gradle / Ivy

package zio.schema

trait AccessorBuilder {
  type Lens[F, S, A]
  type Prism[F, S, A]
  type Traversal[S, A]

  // TODO should we restrict F <: Singleton with String
  def makeLens[F, S, A](product: Schema.Record[S], term: Schema.Field[S, A]): Lens[F, S, A]

  def makePrism[F, S, A](sum: Schema.Enum[S], term: Schema.Case[S, A]): Prism[F, S, A]

  def makeTraversal[S, A](collection: Schema.Collection[S, A], element: Schema[A]): Traversal[S, A]
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy