Skip to content

0.10.0

Compare
Choose a tag to compare
@vigna vigna released this 25 Sep 14:40
· 30 commits to main since this release

Change Log

[0.10.0] - 2025-09-25

New

  • New delegations of standard-library traits to MemCase; in particular,
    AsRef and Deref are back, but with a slightly different semantics, as
    the implementation Deref for MemCase<S> has target
    S::DeserType<_>::Target, and analogously for AsRef.

  • New strategy for MemCase::encase, which uses a transparent wrapper Owned
    to bring back the original functionality.

  • New SerType type alias, analogous to DeserType.

  • Major internal code restructuring: TypeHash/AlignHash/MaxSizeOf are now
    computed on the serialization type, not on the serializable type.

  • New convenience serialization implementation for &str, in the same vain as
    that for &[T].

Changed

  • Major disruptive change: vectors and boxed slices have now the same
    serialization type. This makes them interchangeable at will in
    (de)serialization, which is an extremely useful feature. Unfortunately, old
    instances with replaceable type parameters whose concrete type is a vector
    will no longer be deserializable. The same happens for String and
    Box<str>.

  • CopyType is now unsafe as there is no way to check a type contains
    no references.

  • repr attributes are now sorted lexicographically. This change was
    necessary as the order of such attributes is irrelevant, but it might make
    impossible to deserialize old instances whose type specifies repr attributes
    in a different order.

  • A few TypeHash/AlignHash implementation that were not really necessary
    have been removed.

Fixed

  • The nostd feature now works.