Skip to content

Releases: quartiq/miniconf

Miniconf v0.8.0

03 Aug 13:50
d03726d
Compare
Choose a tag to compare

Added

  • Traversal by names or indices has been added through Miniconf::traverse_by_key().
  • The Miniconf derive macro supports (unnamed) tuple structs.

Removed

  • [breaking] The Array and Option newtypes have been removed. Instead in structs
    the desired Miniconf<N> recursion depth for a field is indicated by an attribute
    #[miniconf(defer(N))] where N is a usize literal. The depth is communicated
    via the trait. For [T;N] and Option the depth up to 8 has been implemented.
    For structs it is arbitrary.

Changed

  • [breaking] The Miniconf trait is now generic over the Deserializer/Serializer. It
    doesn't enforce serde-json-core or u8 buffers or / as the path hierarchy
    separator anymore.
  • [breaking] Miniconf::iter_paths() takes the path hierarchy separator and passes
    it on to Miniconf::path() and Metadata::separator().
  • [breaking] The Miniconf trait has been stripped of the provided functions that depended
    on the serde-backend and path hierarchy separator. Those have been
    moved into the JsonCoreSlash trait that has been implemented for all Miniconf
    to provide the previously existing functionality.
  • [breaking] set() and get() have been renamed to set_json() and get_json()
    respectively to avoid overlap.
  • [breaking] Paths now start with the path separator (unless they are empty).
    This affects the Miniconf derive macro and the Miniconf implementation pairs
    for Option/Array.
    Downstram crates should ensure non-empty paths start with the separator and
    expect next_path paths to start with the separator or be empty.
  • The main serialization/deserialization methods are now Miniconf::{set,get}_by_key()
    They are generic over the key iterator Iterator<Item: miniconf::Key>.
  • The only required change for most direct downstream users the Miniconf trait
    to adapt to the above is to make sure the JsonCoreSlash trait is in scope
    (use miniconf::JsonCoreSlash) and to rename {set,get}() -> {set,get}_json().
    The MqttClient has seen no externally visible changes.
  • [breaking] iter_paths() and iter_paths_unchecked() now don't need the state
    size anymore as it's computed exactly at compile time.
  • [breaking] iter_paths/PathIter is now generic over the type
    to write the path into. Downstream crates should replace iter_paths::<L, TS>() with
    e.g. iter_paths::<heapless::String<TS>>().
  • [breaking] Re-exports of heapless and serde-json-core have been removed as they
    are not needed to work with the public API and would be a semver hazard.
  • [breaking] Metadata is now computed by default without taking into account
    path separators. These can be included using Metadata::separator().

Miniconf v0.7.1

23 Jun 11:29
f69e916
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.7.0...v0.7.1

Miniconf v0.7.0

22 Jun 09:42
681151e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.3...v0.7.0

v0.6.3

09 Dec 16:50
b60e8ec
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.2...v0.6.3

v0.6.2

09 Nov 09:48
a449acc
Compare
Choose a tag to compare

What's Changed

  • reorganize derive macro by @jordens in #116
  • rename derive_miniconf -> miniconf_derive, update categories, and release 0.6.2 by @jordens in #118

Full Changelog: v0.6.1...v0.6.2

v0.6.1

04 Nov 16:16
d63f68a
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.0...v0.6.1

Miniconf v0.6.0

04 Nov 10:56
672cf02
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.5.0...v0.6.0

v0.5.0

13 May 09:24
bff1003
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.4.0...v0.5.0

v0.4.0

11 May 11:13
206864b
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.3.0...v0.4.0

v0.3.0

13 Dec 16:05
04cab96
Compare
Choose a tag to compare

This PR adds Miniconf's 0.3.0 release. Please refer to the CHANGELOG for more information.