ProductLike

oxygen.schema.JsonSchema.ProductLike
See theProductLike companion object
sealed trait ProductLike[A] extends JsonSchema[A]

Attributes

Companion
object
Graph
Supertypes
trait JsonSchema[A]
trait SchemaLike[A]
class Object
trait Matchable
class Any
Known subtypes
trait ProductSchema[A]
trait SumSchema[A]
class TransformProduct[A, B]

Members list

Type members

Inherited classlikes

object unsafe

There are times when you only care about encoding or decoding, and not the other. This makes that possible. If you try to do the thing you explicitly decided not to implement, you will get a runtime exception.

There are times when you only care about encoding or decoding, and not the other. This makes that possible. If you try to do the thing you explicitly decided not to implement, you will get a runtime exception.

Attributes

Inherited from:
SchemaLike
Supertypes
class Object
trait Matchable
class Any

Types

final override type S[a] = ProductLike[a]

Value members

Concrete methods

final override def transform[B](ab: A => B, ba: B => A)(using newTypeTag: TypeTag[B]): ProductLike[B]

Attributes

Definition Classes
final override def transformOrFail[B](ab: A => Either[String, B], ba: B => A)(using newTypeTag: TypeTag[B]): ProductLike[B]

Attributes

Definition Classes

Inherited methods

final override def decode(string: String): Either[String, A]

Attributes

Definition Classes
Inherited from:
JsonSchema
final override def encode(value: A): String

Attributes

Definition Classes
Inherited from:
JsonSchema
final def jsonCodec: JsonCodec[A]

Attributes

Inherited from:
JsonSchema
final def transformAttempt[B](ab: A => B, ba: B => A)(using newTypeTag: TypeTag[B]): S[B]

Attributes

Inherited from:
SchemaLike
final def transformAttemptObscure[B](ab: A => B, ba: B => A)(using newTypeTag: TypeTag[B]): S[B]

Attributes

Inherited from:
SchemaLike
final def transformOption[B](ab: A => Option[B], ba: B => A)(using newTypeTag: TypeTag[B]): S[B]

Attributes

Inherited from:
SchemaLike
final def transformOptionObscure[B](ab: A => Option[B], ba: B => A)(using newTypeTag: TypeTag[B]): S[B]

Attributes

Inherited from:
SchemaLike

Abstract fields

override val jsonDecoder: ObjectDecoder[A]
override val jsonEncoder: ObjectEncoder[A]

Inherited and Abstract fields

val typeTag: TypeTag[A]

Attributes

Inherited from:
SchemaLike