5.8 KiB
5.8 KiB
Changelog
Notable changes to this crate will be documented in this file.
The format is based on Keep a Changelog.
Unreleased - YYYY-MM-DD
2.0.0-pre.2 - 2022-08-28
Added
- Added
EncodeConverttrait to help with correctly handlingBOOL/bool.
Changed
- BREAKING: Remove the lifetime specifier from
Encoding, since the non -'staticversion was essentially useless.
Fixed
- Fixed the encoding output and comparison of structs behind pointers.
Removed
- BREAKING:
bool(andAtomicBool) no longer implementsEncode, since that was difficult to use correctly. See theEncodeConverttrait, or useobjc2::runtime::Boolinstead.
2.0.0-pre.1 - 2022-07-19
Added
- Added
Encoding::Atomic. - Implement
EncodeandRefEncodeforstd::sync::atomictypes.
Changed
- BREAKING: Renamed
Encoding::C_U_LONGtoEncoding::C_ULONG.
2.0.0-pre.0 - 2022-06-13
Added
- Added
Encoding::C_LONGandEncoding::C_U_LONGto help with platform compatibility; use these instead ofc_long::ENCODINGandc_ulong::ENCODING. - Implement
EncodeandRefEncodeforMaybeUninit<T>, whereTis properly bound.
Changed
- BREAKING: Sealed the
EncodeArgumentstrait. - BREAKING: Add type argument to
Encoding::BitField.
Removed
- BREAKING: Removed
PartialEqimpl betweenstrandEncodingsince it was incorrect (it violated the trait requirements). - BREAKING: Removed
EncodeandRefEncodeimplementations forPinsince it may not be sound.
2.0.0-beta.2 - 2022-01-03
Added
- Implement
HashforEncoding.
Changed
- Improved documentation.
2.0.0-beta.1 - 2021-12-22
Added
Encoding::equivalent_to,Encoding::equivalent_to_strandEncoding::equivalent_to_start_of_strmethods for more precise comparison semantics.- Added
EncodeandRefEncodeimplementations forOptionfunction pointers.
Changed
- Discourage comparing
strwithEncodingusingPartialEq. This trait impl might get removed in a future version.
2.0.0-beta.0 - 2021-11-22
Added
- BREAKING: Add
Encoding::LongDouble,Encoding::FloatComplex,Encoding::DoubleComplexandEncoding::LongDoubleComplex. - Implement
RefEncodefor all number types that implementEncode(bool,i8,usize,f32,NonZeroU32, and so on). - Implement
RefEncodefor*const c_voidand*mut c_void(allowingvoid**in C). - Implement
EncodeandRefEncodeforWrapping<T>, whereTis properly bound.
Changed
- BREAKING: Make
Encoding#[non_exhaustive]. This will help us in evolving the API while minimizing further breaking changes. - Discourage using
bool::ENCODING; useobjc2::Bool::ENCODINGinstead. - Discourage using
()::ENCODINGfor anything other than as a function return type.
2.0.0-alpha.1 - 2021-09-01
Added
- Improved documentation.
- Add
RefEncodetrait, which represents types whoose pointers has an encoding. This means you now only have to implementRefEncode, and not both&Encodeand&mut Encode. Additionally, encodings of pointers to pointers (to pointers, and so on) are now supported. - Implement
EncodeforNonZeroXandOption<NonZeroX>integer types. - Implement
RefEncodefor arrays. - Implement
EncodeandRefEncodefor (whereTis properly bound):ManuallyDrop<T>Pin<T>NonNull<T>Option<NonNull<T>>
- Add
EncodeArgumentstrait, to represent an ordered group of functions arguments, where each argument has an Objective-C type-encoding. Previously in theobjccrate. - Implement
EncodeandRefEncodefor someextern "C" fnpointers.
Removed
-
BREAKING: Removed automatic
*const T: Encodeand*mut T: Encodeimpls when when&T: Encodeand&mut T: Encodewas implemented.Implement
T: RefEncodeinstead!
2.0.0-alpha.0 - 2021-09-01
Added
- Improved documentation.
- Support for targets with pointer-width 16
- Implement
Encodefor all array lengths using const-generics. - Implement
Encodefor unsized pointer types as well.
Changed
- BREAKING: Forked the project, so it is now available under the name
objc2-encode. - BREAKING: Changed type in
Encoding::BitFieldfromu32tou8. - BREAKING: Changed type in
Encoding::Arrayfromu32tousize. - BREAKING: Loosen
'staticbounds on references implementingEncode.
1.1.0 (objc-encode crate) - 2019-10-16
Added
- Implement
Encodefor arrays with up to 32 elements.
Changed
- Simplify internal encoding comparison.
1.0.0 (objc-encode crate) - 2019-03-25
Added
- Implement
PartialEqbetweenEncodingand&str.
Changed
- BREAKING: Make
Encodingan enum instead of a trait, yielding a vastly different design. This makes use of associated constants. - BREAKING: Rename
Encode::CODEtoEncode::ENCODING. - Update to Rust 2018.
Removed
libcdependency.
0.0.3 (objc-encode crate) - 2017-04-30
Fixed
- Compilation on versions prior to Rust
1.15.
0.0.2 (objc-encode crate) - 2017-02-20
Added
- BREAKING:
Displayrequirement for encodings. - Implement
PartialEqfor encodings. - Implement
Encodefor pointers when references do.
Fixed
IndexEncodingsComparator.- Compilation with older Rust versions.
0.0.1 (objc-encode crate) - 2017-02-19
Initial version.