You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
The key has expired.
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().