- Overview
EncoderDecoderShowParserMultiShowMultiParserTransformStringReaderStringWriterHasValuePruneLoadInputExtruderErrorsValidationErrorsToThrowable
Overview
Extruder is made up of a number of type classes which compose to perform the task of encoding and decoding. Each data source may define new instances of some of these, or rely on already provided and derived instances.
Encoder
Top level type class for encoding data. Implicit instances may be automatically derived by combining Show or MultiShow with StringWriter.
Decoder
Top level type class for decoding data. Implicit instances may be automatically derived by combining Parser or MultiParser with StringReader
Show
Converts a value into a string. Reimplimentation of Cats’ show.
Parser
Converts a string into either a certain type or a string describing a parse failure. Default instances are provided for a number primitive types.
MultiShow
Converts a value into a map of strings (Map[String, String]). Can be used to convert a multi param object which cannot be generically derived.
MultiParser
Converts a map of strings (Map[String, String]) into a value. Can be used to parse a multi param object which cannot be generically derived.
Transform
When encoding or decoding it may be useful to convert to some intermediate type from which the data can be written/read. For example when working with system properties Properties can be converted into Map[String, String] when decoding and written into Map[String, String] when encoding.
Transform is very similar to a Kleisli composition in that it takes some input data, executes some function over it and returns the result inside of a functor.
A default no operation instance of transform is provided, which just passes through the data untouched.
StringReader
Reads a string from a data source and returns it as an option.
StringWriter
Writes a string to a data source.
HasValue
Discovers if a data source has a certain value. If an implicit StringReader instance is in scope, then a HasValue instance may be automatically derived.
Prune
Used to constrain input data under a given path. Can be used to decode a map from a data source.
LoadInput
Certain data soruces may be loaded from the environment such as environment variables and system properties. LoadInput provides the ability to load this data for these data sources.
ExtruderErrors
Church encoding of types of errors which may be encountered during the encoding or decoding process. Also provides the ability to fallback to another invocation.
Implicit instances may be automatically derived for instances of Cats’ ApplicativeError[F, Throwable].
ValidationErrorsToThrowable
Flattens validation errors into a single exception. Used in the cats-effect module by EffectValidations to provide ConcurrentEffect instances.