@@ -11,21 +11,28 @@ adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
1111
1212- ` smartstring ` now implements its own boxed string type rather than deferring directly to
1313 ` String ` , so it no longer makes assumptions it shouldn't be making about the layout of the
14- ` String ` struct. This also allows us to organise the boxed struct in a way that will let us rely
15- only on our basic assumption that heap memory is word aligned on both big and little endian
16- architectures. The most immediate consequence of this is that ` smartstring ` will now compile on
17- 32-bit big endian architectures such as ` mips ` .
14+ ` String ` struct.
15+
16+ This also allows us to organise the boxed struct in a way that will let us rely only on our
17+ basic assumption that heap memory is word aligned on both big and little endian architectures.
18+ The most immediate consequence of this is that ` smartstring ` will now compile on 32-bit big
19+ endian architectures such as ` mips ` .
20+
21+ We are now also explicitly allocating heap memory aligned for ` u16 ` rather than ` u8 ` , ensuring
22+ the assumption about pointer alignment becomes an invariant.
1823
1924 In short: ` smartstring ` no longer relies on undefined behaviour, and should be safe to use
2025 anywhere.
2126
2227- The above means that the boxed ` SmartString ` is no longer pointer compatible with ` String ` , so
23- if you were relying on that despite the documentation telling you not to, you'll really have to
28+ if you were relying on that despite the documentation urging you not to, you'll really have to
2429 stop it now. Converting between ` SmartString ` and ` String ` using ` From ` and ` Into ` traits is
2530 still efficient and allocation free.
2631
2732- The minimum supported rustc version is now 1.57.0.
2833
34+ - The ` smartstring::validate() ` function has been removed, as it's no longer needed.
35+
2936## [ 0.2.10] - 2022-02-20
3037
3138### CHANGED
0 commit comments