Repository navigation
Releases: mversic/co3
Releases · mversic/co3
Release list
0.8.2
0.8.1
Added
- Derive
WideandNulTerminatedBuffor#[repr(transparent)]structs with multiple fields
Changed
- Emit special-type identity checks once per derive or FFI expansion.
- Rename
NulTerminatedBuf::DatatoNulTerminatedBuf::Header. - lower
ManuallyDrop<T>asT::CTypewhenTisNoDrop. - Require
Wideimplementors to be dynamically sized types.
Removed
- remove
UnsafeCellimpls which relied on unsychronized access. - remove
#[repr_c(as(T))]feature which relied on falseRustSpec.
0.8.0
Added
- Parameterize wide pointer carriers by unsized
Widepointee types. - Support
UnsafeCell<T>andCell<T>in C-compatible representations. - Implement
CTypeforManuallyDrop<T>and represent it asManuallyDrop<T::CType>.
Changed
- Rename
CSlice/CSliceMut/CBoxedSlicetoCWideRef/CWideRefMut/CWideBox/CWideBoxCell. - Rename the mutable carrier const param from
RESTRICTEDtoEXCLUSIVEand remove its default. - Require opaque types to have the opaque
RustSpecwith#[rust_spec(opaque)]. - Set the MSRV to 1.99 because of the
UnsafeCelltransmutation guarantees. - Remove the
Copysupertrait requirement fromCFnArgandCFnReturn.
Fixed
- Corrected (de)serialization of
ManuallyDropandMaybeUninit
Removed
cell::InteriorMutwas removed because usingUnsafeCell::getis no longer required
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
Added
- Add
decode_uncheckedto decode C-compatible values without validating them. - Handle types with custom
Dropimplementations viaRustSpec::Dropaxis. - Support encoding
CStringand custom nul-terminated aggregate types. - Support
#[repr_c(transparent)]which uses inner type'sCType - Generate C-compatible wrappers for
boolandOrdering.
Changed
- Model aliasing explicitly in C ABI carriers
CRefMutandCSliceMut. - Rename the niche derive setting from
NICHE_VALUEtoNICHE. - Separate header and data handling for
Widetypes.
Removed
- Restrict
Wideimplementations to custom slice-like DSTs to avoid undefined behavior.
0.6.0
Added
- Support
#[unpack]on method receivers and raw pointers to wide types. - Implement
Unpack2for raw andNonNullpointers to wide types. - Derive
Widefor eligible#[repr_c(identity)]dynamically sized structs.
Changed
- Change
WideAPI to take raw pointers instead of references. - Move conversion store structs, including
ArrayStore, fromstoredtosync. - Use
CBoxCelltypes as the C-compatible representations of interior mutable boxes.
Fixed
- Correct conversion and borrowing of interior mutable slices and boxes.