scholium::mark annotation replaces all kinds of TODOs with Rust-native way, allowing developers to categorize them with better precision, write better reasoning and make them easy to extract, report and maintain in the long run. Thanks to Rust literal string boundaries, it's possible to write long multiline reasons, for example allowing to attach even code snippets if needed.

Annotation is made to be attached to an exact place and it provides only documentation value without altering an item attached in any way. This means if the annotation when be attached to a function, module, crate (or a statement), it documents this particular item and nothing else.

#[scholium::mark(
    info,
    implementation::extend,
    doc::possible_extensions,
    reason = "Extend functionality to use any type implementing `+` operation"
)]
fn add(a: u32, b: u32) -> u32 {
    a + b
}
 

This is a small release to support Deku 0.20.0 release. The only incompatibility was an introduced descriptive-errors feature which is explicitly propagated at the moment.

The crate started as support decoding and encoding fixed and variable length unicode strings, but quite soon become more than this.

While there’s some ideas to implement, new ideas and improvements are always welcome.

 

New version of deku_string v 0.4.0. Notable changes:

  • Support for Vec<T> will all benefits of the library.
  • Full support for no_std (thanks for contribution).
  • Support for defmt library used in embedded environments.
  • New more readable documentation (including tests).

deku_string is a utility crate for deku, binary bit-aware parser with ability create serde-like models. Crate provides thin wrappers around String and Vec to support various common layouts such as fixed-length, prefix length (Pascal-like and .Net-like) and zero-ended strings.

Stay tuned for for more awesome news!

PS: Looking for contributors to provide 16-bit compile target support.