Releases: quartiq/miniconf
Releases · quartiq/miniconf
miniconf-v0.11.0
What's Changed
- move readme around by @jordens in #203
- docs by @jordens in #204
- tweaks by @jordens in #206
- TreeAny, accessors/rename, JSONPath by @jordens in #207
- lookup by @jordens in #210
- release v0.11.0 by @jordens in #211
- crosstrait by @jordens in #212
Full Changelog: miniconf-v0.10.1...miniconf-v0.11.0
Miniconf v0.10.0
Changed
- [breaking] Python lib signatures have changed (Miniconf.create(), discover())
- Python lib discovery timeout has been optimized to work well for both slow
connections (high RTT) and fast ones - [breaking] The MQTT client does not own the miniconf settings struct anymore.
- [breaking]
handled_update()
has been removed from the MQTT client in favor of validator/getter/setter callbacks. - [breaking] The MQTT client has been split into its own
miniconf_mqtt
crate. - [breaking] The attribute syntax has changed from
#[tree(depth(1))]
to#[tree(depth=1)]
. - [breaking] The default depth is
0
, also in the case where a#[tree()]
withoutdepth
has been specified. - [breaking] The
traverse_by_key
callback also receives the number of indices at the given level. - The trait methods are now generic over
Keys
and not overIterator<Item: Key>
.
A blanket implementation has been provided. JsonCoreSlash::{set,get}_json_by_indices()
removed in favor of{get,set}_json_by_key()
.- [breaking]
Error::PostDeserialization
renamed toError::Finalization
. - [breaking]
json-core
removed from default features. - [breaking] Bumped MSRV to 1.70.0
Added
- Python MQTT lib: Support for clearing a retained setting
- Python MQTT CLI: get() support
TreeKey::iter_indices()
anditer_indices_unchecked()
- Derive macros: Support for fallible getter/setter/validation callbacks
- Support for bit-packed keys
Packed
anditer_packed()
/iter_packed_unchecked()
- A
postcard
feature andPostcard
trait and blanket implementation TreeKey::len()
- The
typ
derive macro attribute
Full Changelog: v0.9.0...v0.10.0
miniconf-v0.10.1
Full Changelog: v0.10.0...miniconf-v0.10.1
Miniconf v0.9.0
Changed
- The
Miniconf
trait has been split intoTreeKey
for the keys/path/indices and traversal,
theTreeSerialize
for serialization, andTreeDeserialize
for deserialization.
The derive macros have been split accordingly. A shorthand#[derive(Tree)]
macro has been
added to derive all three traits. The struct field attribute controlling
recursion depth has been renamed to#[tree(depth(Y))]
. - [mqtt] The
List
command of theMqttClient
now has a maximum correlation data length of 32 bytes - [mqtt] The
MqttClient
API has changed to support new Minimq versions - [mqtt] The
Get
command now only generates a single message in response to the provided
ResponseTopic instead of a response type (with success) and a message on the original topic. - [mqtt] Handler function singatures now require
Display
instead ofAsRef<str>
types
Added
- Deserializing with borrowed data is now supported.
- [derive] Added
#[tree(skip)]
macro attribute to allow skipping entries.
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