Skip to content

Releases: mversic/co3

0.8.2

Choose a tag to compare

@mversic mversic released this 21 Oct 13:44
358cc5f

Fixed

  • don't duplicate concretized bounds on DispatchSet impls

0.8.1

Choose a tag to compare

@mversic mversic released this 21 Oct 07:13
c407788

Added

  • Derive Wide and NulTerminatedBuf for #[repr(transparent)] structs with multiple fields

Changed

  • Emit special-type identity checks once per derive or FFI expansion.
  • Rename NulTerminatedBuf::Data to NulTerminatedBuf::Header.
  • lower ManuallyDrop<T> as T::CType when T is NoDrop.
  • Require Wide implementors to be dynamically sized types.

Removed

  • remove UnsafeCell impls which relied on unsychronized access.
  • remove #[repr_c(as(T))] feature which relied on false RustSpec.

0.8.0

Choose a tag to compare

@mversic mversic released this 16 Oct 22:44
70fb1c0

Added

  • Parameterize wide pointer carriers by unsized Wide pointee types.
  • Support UnsafeCell<T> and Cell<T> in C-compatible representations.
  • Implement CType for ManuallyDrop<T> and represent it as ManuallyDrop<T::CType>.

Changed

  • Rename CSlice/CSliceMut/CBoxedSlice to CWideRef/CWideRefMut/CWideBox/CWideBoxCell.
  • Rename the mutable carrier const param from RESTRICTED to EXCLUSIVE and remove its default.
  • Require opaque types to have the opaque RustSpec with #[rust_spec(opaque)].
  • Set the MSRV to 1.99 because of the UnsafeCell transmutation guarantees.
  • Remove the Copy supertrait requirement from CFnArg and CFnReturn.

Fixed

  • Corrected (de)serialization of ManuallyDrop and MaybeUninit

Removed

  • cell::InteriorMut was removed because using UnsafeCell::get is no longer required

0.7.4

Choose a tag to compare

@mversic mversic released this 13 Oct 14:11
8ff7fe4

Added

  • delegate notable trait impls for OwnedExternType to matching impls on ExternType.

Fixed

  • Resolve associated item paths FFI function signatures.
  • don't allow #[derive] on extern type declarations.

0.7.3

Choose a tag to compare

@mversic mversic released this 11 Oct 16:42
4b56bb1

Added

  • Add implied Sized bound to params in slice-like DST tails.

Changed

  • implement RustSpec for synthesized views manually.

0.7.2

Choose a tag to compare

@mversic mversic released this 11 Oct 12:42
de5c69a

Added

  • implement CType for robust Options, Results and derived types with stable layout.
  • Add the transparent CRef<T> carrier for shared references to thin values.

Fixed

  • Reject niches, validation, and custom Drop in repr delegation

0.7.1

Choose a tag to compare

@mversic mversic released this 10 Oct 08:40
74fba6a

Added

  • Add conversions and derives for co3::ffi types and make their use portable

0.7.0

Choose a tag to compare

@mversic mversic released this 10 Oct 07:39
d328b6f

Added

  • Add decode_unchecked to decode C-compatible values without validating them.
  • Handle types with custom Drop implementations via RustSpec::Drop axis.
  • Support encoding CString and custom nul-terminated aggregate types.
  • Support #[repr_c(transparent)] which uses inner type's CType
  • Generate C-compatible wrappers for bool and Ordering.

Changed

  • Model aliasing explicitly in C ABI carriers CRefMut and CSliceMut.
  • Rename the niche derive setting from NICHE_VALUE to NICHE.
  • Separate header and data handling for Wide types.

Removed

  • Restrict Wide implementations to custom slice-like DSTs to avoid undefined behavior.

0.6.0

Choose a tag to compare

@mversic mversic released this 04 Oct 15:58
d81ad17

Added

  • Support #[unpack] on method receivers and raw pointers to wide types.
  • Implement Unpack2 for raw and NonNull pointers to wide types.
  • Derive Wide for eligible #[repr_c(identity)] dynamically sized structs.

Changed

  • Change Wide API to take raw pointers instead of references.
  • Move conversion store structs, including ArrayStore, from stored to sync.
  • Use CBoxCell types as the C-compatible representations of interior mutable boxes.

Fixed

  • Correct conversion and borrowing of interior mutable slices and boxes.

0.5.3

Choose a tag to compare

@mversic mversic released this 02 Oct 09:51
19b7193

Added

  • Support #[repr_c(as(T))] to delegate owned conversions through Into<T> and TryFrom<T>.
  • Generate an OwnedType = Box<Type> alias for opaque types in ffi! export declarations.