JsonRewindDecoder

zio.json.JsonRewindDecoder
class JsonRewindDecoder[A](jsonDecoder: JsonDecoder[A]) extends JsonDecoder[A]

Attributes

Graph
Supertypes
trait JsonDecoder[A]
trait JsonDecoderPlatformSpecific[A]
class Object
trait Matchable
class Any

Members list

Concise view

Value members

Concrete methods

override def unsafeDecode(trace: List[JsonError], in: RetractReader): A

Low-level, unsafe method to decode a value or throw an exception. This method should not be called in application code, although it can be implemented for user-defined data structures.

Low-level, unsafe method to decode a value or throw an exception. This method should not be called in application code, although it can be implemented for user-defined data structures.

Attributes

Definition Classes
JsonDecoder

Inherited methods

final def *>[B](that: => JsonDecoder[B]): JsonDecoder[B]

An alias for JsonDecoder#zipRight.

An alias for JsonDecoder#zipRight.

Attributes

Inherited from:
JsonDecoder
final def <*[B](that: => JsonDecoder[B]): JsonDecoder[A]

An alias for JsonDecoder#zipLeft.

An alias for JsonDecoder#zipLeft.

Attributes

Inherited from:
JsonDecoder
final def <*>[B](that: => JsonDecoder[B]): JsonDecoder[(A, B)]

An alias for JsonDecoder#zip.

An alias for JsonDecoder#zip.

Attributes

Inherited from:
JsonDecoder
final def <+>[B](that: => JsonDecoder[B]): JsonDecoder[Either[A, B]]

An alias for JsonDecoder#orElseEither.

An alias for JsonDecoder#orElseEither.

Attributes

Inherited from:
JsonDecoder
final def <>[A1 >: A](that: => JsonDecoder[A1]): JsonDecoder[A1]

An alias for JsonDecoder#orElse.

An alias for JsonDecoder#orElse.

Attributes

Inherited from:
JsonDecoder
final def decodeJson(str: CharSequence): Either[String, A]

Attempts to decode a value of type A from the specified CharSequence, but may fail with a human-readable error message if the provided text does not encode a value of this type.

Attempts to decode a value of type A from the specified CharSequence, but may fail with a human-readable error message if the provided text does not encode a value of this type.

Note: This method may not entirely consume the specified character sequence.

Attributes

Inherited from:
JsonDecoder
final def decodeJsonPipeline(delimiter: JsonStreamDelimiter): ZPipeline[Any, Throwable, Char, A]

Attributes

Inherited from:
JsonDecoderPlatformSpecific
final def decodeJsonStream[R](stream: ZStream[R, Throwable, Char]): ZIO[R, Throwable, A]

Attempts to decode a stream of characters into a single value of type A, but may fail with a human-readable exception if the stream does not encode a value of this type.

Attempts to decode a stream of characters into a single value of type A, but may fail with a human-readable exception if the stream does not encode a value of this type.

Note: This method may not consume the full string.

Attributes

See also:

also decodeJsonStreamInput

Inherited from:
JsonDecoderPlatformSpecific
final def decodeJsonStreamInput[R](stream: ZStream[R, Throwable, Byte], charset: Charset): ZIO[R, Throwable, A]

Attempts to decode a stream of bytes using the user supplied Charset into a single value of type A, but may fail with a human-readable exception if the stream does not encode a value of this type.

Attempts to decode a stream of bytes using the user supplied Charset into a single value of type A, but may fail with a human-readable exception if the stream does not encode a value of this type.

Note: This method may not consume the full string.

Attributes

See also:

decodeJsonStream For a Char stream variant

Inherited from:
JsonDecoderPlatformSpecific
final def fromJsonAST(json: Json): Either[String, A]

Decode a value from an already parsed Json AST.

Decode a value from an already parsed Json AST.

The default implementation encodes the Json to a byte stream and uses decode to parse that. Override to provide a more performant implementation.

Attributes

Inherited from:
JsonDecoder
final def map[B](f: A => B): JsonDecoder[B]

Returns a new codec whose decoded values will be mapped by the specified function.

Returns a new codec whose decoded values will be mapped by the specified function.

Attributes

Inherited from:
JsonDecoder
final def mapOrFail[B](f: A => Either[String, B]): JsonDecoder[B]

Returns a new codec whose decoded values will be mapped by the specified function, which may itself decide to fail with some type of error.

Returns a new codec whose decoded values will be mapped by the specified function, which may itself decide to fail with some type of error.

Attributes

Inherited from:
JsonDecoder
final def orElse[A1 >: A](that: => JsonDecoder[A1]): JsonDecoder[A1]

Returns a new codec that combines this codec and the specified codec using fallback semantics: such that if this codec fails, the specified codec will be tried instead. This method may be unsafe from a security perspective: it can use more memory than hand coded alternative and so lead to DOS.

Returns a new codec that combines this codec and the specified codec using fallback semantics: such that if this codec fails, the specified codec will be tried instead. This method may be unsafe from a security perspective: it can use more memory than hand coded alternative and so lead to DOS.

For example, in the case of an alternative between Int and Boolean, a hand coded alternative would look like:

val decoder: JsonDecoder[AnyVal] = JsonDecoder.peekChar[AnyVal] {
case 't' | 'f' => JsonDecoder[Boolean].widen
case c         => JsonDecoder[Int].widen
}

Attributes

Inherited from:
JsonDecoder
final def orElseEither[B](that: => JsonDecoder[B]): JsonDecoder[Either[A, B]]

Returns a new codec that combines this codec and the specified codec using fallback semantics: such that if this codec fails, the specified codec will be tried instead.

Returns a new codec that combines this codec and the specified codec using fallback semantics: such that if this codec fails, the specified codec will be tried instead.

Attributes

Inherited from:
JsonDecoder
def unsafeDecodeMissing(trace: List[JsonError]): A

Attributes

Inherited from:
JsonDecoder
def unsafeFromJsonAST(trace: List[JsonError], json: Json): A

Attributes

Inherited from:
JsonDecoder
final def widen[B >: A]: JsonDecoder[B]

Returns this decoder but widened to the its given super-type

Returns this decoder but widened to the its given super-type

Attributes

Inherited from:
JsonDecoder
final def zip[B](that: => JsonDecoder[B]): JsonDecoder[(A, B)]

Returns a new codec that combines this codec and the specified codec into a single codec that decodes a tuple of the values decoded by the respective codecs.

Returns a new codec that combines this codec and the specified codec into a single codec that decodes a tuple of the values decoded by the respective codecs.

Attributes

Inherited from:
JsonDecoder
final def zipLeft[B](that: => JsonDecoder[B]): JsonDecoder[A]

Zips two codecs, but discards the output on the right hand side.

Zips two codecs, but discards the output on the right hand side.

Attributes

Inherited from:
JsonDecoder
final def zipRight[B](that: => JsonDecoder[B]): JsonDecoder[B]

Zips two codecs, but discards the output on the left hand side.

Zips two codecs, but discards the output on the left hand side.

Attributes

Inherited from:
JsonDecoder
final def zipWith[B, C](that: => JsonDecoder[B])(f: (A, B) => C): JsonDecoder[C]

Zips two codecs into one, transforming the outputs of zip codecs by the specified function.

Zips two codecs into one, transforming the outputs of zip codecs by the specified function.

Attributes

Inherited from:
JsonDecoder

Concrete fields

lazy val reader: RecordingReader