🏝 Bidirectional TOML serialization
Full Changelog: https://github.com/kowainik/tomland/compare/v1.3.3.1...v1.3.3.2
See CHANGELOG.md for more details.
hashable
Validation
from validation-selective
in TomlEnv
. This allows to accumulate and display all errors that occurs during the decoding phase. All previous decode functions return list of all TomlDecodeError
s.
Note: Due to the specific of Validation
data type, there is no Monad
instanse of Codec
anymore. However, this doesn't limit any previously released features.decodeValidation
, decodeFileValidation
functions to return Validation
instead of Either
.Codec
abstraction. Instead of having Codec r w c a
now it is Codec TomlEnv TomlState c a
. Remove BiCodec
as it is simple TomlCodec
with this change.BiMap
_Validate
and codecs validate
and validateIf
for custom validation._Coerce
TomlBiMap
.pair
and triple
codecs for tuples.tableMap
codec to use TOML keys as Map
keys.hashMap
, tableHashMap
, intMap
, tableIntMap
codec combinators.intSet
codec._KeyInt
BiMap
for key-as-int approach.HasCodec
instances for Map
, HashMap
and IntMap
for Generic
deriving.TomlTable
newtype to be used in generic DerivingVia
.ByteStringAsText
, ByteStringAsBytes
, LByteStringAsText
, LByteStringAsBytes
newtypes. Add corresponding HasCodec
instances for these data types.TomlState
instead of using MaybeT
and State
.ParseException
to TomlParseError
.DecodeException
to TomlDecodeError
.TableArrayNotFound
constructor to TomlDecodeError
.TrivialError
and TypeMismatch
constructors of the TomlDecodeError
type.Key
in the BiMapError
constructor of TomlDecodeError
.decodeFileEither
and encodeToFile
functions.sum
and product
behaviour on missing fields. Now it returns the wrapper of mempty
instead of failure.nonEmpty
codec throws TableArrayNotFound
instead of TableNotFound
.parseKey
.TomlDecodeError
with decode
function.hspec-*
family of libraries from tasty-*
.megaparsec
version to 8.0.0
.For more detailed information, see CHANGELOG.
More useful codecs: Map and Monoid wrappers (Any, All, Sum, Product, First, Last).
Faster parsing, more combinators, better docs
More details in the following blog post: