To focus the search input from anywhere on the page, press the 'S' key.
in-package search v0.1.0
Correct logic for non-strict boolean retrieval (
is no longer considered true).
Fixed value lookup inside inline tables.
String representations of special floating-point values (not a number, infinity) are compliant with the TOML spec.
Support for date to string conversions in accessors.
Multiple new helpers for easy lookup of values of various types.
The functor now takes a single
TomlNumber module instead of independent
The reason for that change is that for integer/float conversions to work, the module needs to know
both int and float types and provide conversion functions that involve both types.
That change has no effect on the default implementation interface.
get_table_valuesfor quickly retrieving unboxed values from homogemous tables.
*_resultversions of the high level interface functions and
Accessors: fixed incorrect float to boolean conversion and added int/float conversions.
Exceptions are now correctly exposed in the functorial interface.
path_existsis correctly exposed now as well.
Integer and float implicit conversions in non-strict mode are now supported.
The lexer no longer uses internal mutable state so it's now re-entrant and (hopefully) thread-safe.
Modules signatures now use
includeto avoid copying large chunks, so the library is much easier to contribute to.
Otoml.get_array now has type
?strict:bool -> (t -> 'a) -> t -> 'a list,
that is, it requires an accessor function that will be applied to every item of the array.
For example, you can use
Otoml.find t (Otoml.get_array Otoml.get_string) ["foo"] to retrieve
an array of strings from a TOML document's key
The motivation for the change is that it allows retrieving arrays of unwrapped OCaml values in one step.
The old behaviour can still be emulated using an identify function for the accessor,
for example the built-in
Otoml.get_value : 'a -> 'a.
Otoml.path_exists t ["some"; "table"; "key"] allows checking if a key path exists in a TOML document.
Otoml.Printer.to_string/to_channel functions now provide
~force_table_array option. When set to true,
it forces every array that contains nothing but tables to be rendered using the `[[...]]`` table array syntax.
Unicode escape sequences are now printed correctly.
If a table has subtables and non-table items, the non-table items are forcibly moved before the first subtable
for printing. This way the output parses correctly, otherwise the non-table items would be mistakenly treated
as subtable members. This way hand-constructed TOML tables are always formatted correctly even if the user
inserts non-table items after a subtable.
Added a minimal test suite for the read-write interface, and a TOML test suite client executable for encoder testing.
Default implementation modules correctly expose their
type t so that custom implementations
built using the functorial interface don't end up with unintentionally abstract types
for integers, floats, and dates.