Releases: quartiq/miniconf
Releases · quartiq/miniconf
Miniconf v0.8.0
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
andOption
newtypes have been removed. Instead in structs
the desiredMiniconf<N>
recursion depth for a field is indicated by an attribute
#[miniconf(defer(N))]
whereN
is ausize
literal. The depth is communicated
via the trait. For[T;N]
andOption
the depth up to8
has been implemented.
Forstructs
it is arbitrary.
Changed
- [breaking] The
Miniconf
trait is now generic over theDeserializer
/Serializer
. It
doesn't enforceserde-json-core
oru8
buffers or/
as the path hierarchy
separator anymore. - [breaking]
Miniconf::iter_paths()
takes the path hierarchy separator and passes
it on toMiniconf::path()
andMetadata::separator()
. - [breaking] The
Miniconf
trait has been stripped of the provided functions that depended
on theserde
-backend and path hierarchy separator. Those have been
moved into theJsonCoreSlash
trait that has been implemented for allMiniconf
to provide the previously existing functionality. - [breaking]
set()
andget()
have been renamed toset_json()
andget_json()
respectively to avoid overlap. - [breaking] Paths now start with the path separator (unless they are empty).
This affects theMiniconf
derive macro and theMiniconf
implementation pairs
forOption
/Array
.
Downstram crates should ensure non-empty paths start with the separator and
expectnext_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 iteratorIterator<Item: miniconf::Key>
. - The only required change for most direct downstream users the
Miniconf
trait
to adapt to the above is to make sure theJsonCoreSlash
trait is in scope
(use miniconf::JsonCoreSlash
) and to rename{set,get}() -> {set,get}_json()
.
TheMqttClient
has seen no externally visible changes. - [breaking]
iter_paths()
anditer_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 replaceiter_paths::<L, TS>()
with
e.g.iter_paths::<heapless::String<TS>>()
. - [breaking] Re-exports of
heapless
andserde-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 usingMetadata::separator()
.
Miniconf v0.7.1
What's Changed
Full Changelog: v0.7.0...v0.7.1
Miniconf v0.7.0
What's Changed
- option: actually return PathAbsent by @jordens in #128
- rj/complex example by @jordens in #129
- Adding mechanism to query path structure and active values by @ryan-summers in #124
- Updating response codes to use user properties by @ryan-summers in #133
- rj/itoa by @jordens in #130
- mqtt client: escalate more some errors by @jordens in #135
- Fixing user property ordering by @ryan-summers in #138
- AsRef, AsMut, IntoIterator by @jordens in #141
- Bumping client, releasing Miniconf by @ryan-summers in #145
Full Changelog: v0.6.3...v0.7.0
v0.6.3
What's Changed
- Replacing
develop
withmain
by @ryan-summers in #119 - add from/into docs by @jordens in #121
- repr(transparent) for option and array by @jordens in #122
- Preparing for a 0.6.3 release by @ryan-summers in #127
Full Changelog: v0.6.2...v0.6.3
v0.6.2
v0.6.1
Miniconf v0.6.0
What's Changed
- py: remove whitespace on dump by @jordens in #92
- Feature/unique discovery by @ryan-summers in #98
- Support heapless primitives by @nkrackow in #96
- Cleaning up python client by @ryan-summers in #101
- Feature/trait rework by @ryan-summers in #100
- refactorings/renamings by @jordens in #102
- rework (make get/set_path generic Peekable, associated fns for metadata and next_path) by @jordens in #105
- symmetric error by @jordens in #108
- next_path() errors and path count by @jordens in #109
- Feature/minimq update by @ryan-summers in #95
- Updating client to use at-least-once responses by @ryan-summers in #111
- use slice::fill() by @jordens in #113
- bump serde-json-core by @jordens in #112
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
- Renaming iterator functions to prevent name conflicts by @ryan-summers in #89
- Staging 0.5.0 miniconf release by @ryan-summers in #90
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
- Small pr to update the command for installation in the readme of py/miniconf-mqtt by @nkrackow in #73
- Updating MqttClient to accept initial settings values by @ryan-summers in #75
- Adding support for Options by @ryan-summers in #77
- Feature/settings validation by @ryan-summers in #63
- Leveraging clippy by @ryan-summers in #83
- Implementing fix to ignore incoming republish data by @ryan-summers in #82
- Preparing for miniconf release 0.4.0 by @ryan-summers in #85
New Contributors
Full Changelog: v0.3.0...v0.4.0