Releases: Rust-for-Linux/pinned-init
Releases · Rust-for-Linux/pinned-init
v0.0.8
Changed
- return type of
zeroed()
fromimpl Init<T, E>
toimpl Init<T>
(also removing the generic
parameterE
) - removed the default error of
try_[pin_]init!
, now you always have to specify an error using
? Error
at the end - put
InPlaceInit
behind thealloc
feature flag, this allows stable usage of the#![no_std]
part of the crate
Full changes: v0.0.7...v0.0.8
v0.0.7
Added
Zeroable
derive macro..Zeroable::zeroed()
tail expression support in[try_][pin_]init!
macros: allowed to omit
fields, omitted fields are initialized with0
[pin_]chain
functions to modify a value after an initializer has run[pin_]init_array_from_fn
to createimpl [Pin]Init<[T; N], E>
from a generator closure
fn(usize) -> impl [Pin]Init<T, E>
impl Zeroable for UnsafeCell
Changed
PinInit
is now a supertrait ofInit
(before there was a blanket impl)
Removed
- coverage workflow and usage of
#[feature(no_coverage)]
impl Zeroable for Infallible
(see Security)
Fixed
Self
in generic bounds on structs with#[pin_data]
- const generic default parameter values can now be used on structs with
#[pin_data]
Security
impl Zeroable for Infallible
(#13) it was possible to trigger UB by creating a value of type
Box<Infallible>
viaBox::init(zeroed())
Full Changes: v0.0.6...v0.0.7