22 KiB
22 KiB
Changelog
This is the changelog of Oct.
See README.md
for more information.
0.23.0
- Update lints
- Decrease MSRV to 1.85 for
oct
- Add
unstable-docs
feature - Clean up code
- Remove
T: Copy
bound fromEncode
andSizedEncode
implementations forUnsafeCell<T>
- Implement
Encode
forrc::Weak
andsync::Weak
- Implement
Decode
forrc::Weak
andsync::Weak
- Remove
OutputError
andInputError
- Unmark all
Output
andInput
functions withconst
- Panic on I/O errors
- Make
Input::{peek, peek_into}
take constantself
reference - Update tests
- Implement
SizedEncode
forrc::Weak
andsync::Weak
- Update readme
0.22.0
- Clean up code
- Again make
bool
decoding fallible - Bring back
BoolDecodeError
error - Add
BadChar
andNonBool
variants toGenericDecodeError
- Fix
GenericDecodeError
not implementingFrom<CharDecodeError>
- Implement
From<BoolDecodeError>
forGenericDecodeError
- Fix
<Option as Decode>::Error
not being a form ofEnumDecodeError
- Remove
string
andvec
modules (including contents) - Remove
string
andvec
macros - Update readme
- Fix
<{Option, Result, SocketAddr} as Encode>::Error
not being forms ofEnumEncodeError
0.21.2
- Update tests
- Update docs
0.21.1
- Fix
GenericDecodeError
andGenericEncodeError
not implementingEq
0.21.0
- Again lock
SystemTimeDecodeError
behind thestd
feature - Support custom error types when deriving
Encode
andDecode
0.20.2
- Clean up procedural macros
0.20.1
- Update readme
- Clean up code
- Update tests
0.20.0
- Remove
Vec::set_len
- Rename
Vec::set_len_unchecked
toVec::set_len
- Update repository link
- Always expose
SystemTimeDecodeError
- Update lints
- Migrate Bincode benchmark to version 2.0
0.19.1
- Clean up code
- Fix double-destruction when using
<Vec<T, N> as From<[T; N]>>::from
- Fix
Vec::<T, _>::new
still having aT: Copy
bound - Update tests
0.19.0
- Implement
Default
forvec::IntoIter
- Mark
String::is_char_boundary
withconst
- Update lints
- Clean up code
- Bump MSRV to
1.86
foroct
- Bump Rust edition to
2024
foroct
andoct-macros
(andoct-benchmarks
) - Fix
<vec::IntoIter as Iterator>::nth
not considering the current position - Optimise
Iterator
,DoubleEndedIterator
, andExactSizeIterator
implementations forvec::IntoIter
- Fix
<vec::IntoIter as Iterator>::size_hint
unsafely underflowing the size - Fix
<vec::IntoIter as Iterator>::nth
allowing out-of-bounds reads - Fix bounds on
Arc
include in/oct/src/decode/decode/mod.rs
- Implement
PartialEq<Cow<str>>
forString
- Bring back
vec
macro - Update syntax for
string
macro - Unmark
vec::IntoIter::{as_slice, as_mut_slice}
withconst
- Optimise
PartialEq
,Eq
, andPartialOrd
implementations - Rewrite
Clone
implementations forVec
andvec::IntoIter
- Update tests
- Unimplement
PartialEq<&mut [u8]>
forSlot
- Rewrite
Vec::into_boxed_slice
- Rename
Vec::into_alloc_vec
tointo_vec
0.18.0
- Clean up code
- Update
Hash
implementation forVec
- Update lints
- Remove
vec
macro - Rework
str
macro asstring
- Remove
Vec::copy_from_slice
- Rename
new
andnew_unchecked
inVec
tocopy_from_slice
andcopy_from_slice_unchecked
- Add new
new
constructor toVec
- Update docs
- Add
test_vec_new
test
0.17.1
- Clean up code
- Fix
<{IntoIter, Vec} as Drop>::drop
- Update
track_caller
usage
0.17.0
- Update signature for
Slot::write
- Remove
Slot::is_full
- Specify version in root Cargo manifest
- Update docs
- Clean up code
- Add
str
andvec
macro - Add
track_caller
attribute to some functions - Add
str_macro
andvec_macro
tests - Add
peek
andpeek_into
methods toInput
0.16.3
- Update repository link (SSH is not permitted on
crates.io
)
0.16.2
- Update repository link
- Clean up code
- Fix error bounds on
Decode
forHashMap
- Fix error bounds on
Encode
for(T0, ..)
0.16.1
- Update readme
- Update docs
- Update lints
0.16.0
- Reimplement
Decode
foralloc::vec::Vec
,alloc::string::String
,CString
,LinkedList
,HashMap
, andHashSet
- Reimplement
DecodeBorrowed
foralloc::vec::Vec
,alloc::string::String
, andCString
- Update and add tests
- Update readme
- Clean up code
- Implement
From<Infallible>
for all error types - Update docs
- Rework
EnumEncodeError
andEnumDecodeError
- Add
encode_char
benchmark - Implement
Encode
andDecode
forOsStr
,OsString
,c_void
, andBinaryHeap
- Remove
never-type
feature flag - Rework
PrimDiscriminant
asPrimRepr
- Add
PrimDiscriminant
enumeration - Implement
From<T: PrimRepr>
forPrimDiscriminant
- Implement
PrimRepr
foru8
,u16
,u32
,u64
,u128
,usize
,i8
,i16
,i32
,i64
,i128
, andisize
- Implement
Debug
,Display
,Binary
,Octal
,LowerHex
,UpperHex
,LowerExp
, andUpperExp
forPrimDiscriminant
- Implement
Clone
,Copy
,Eq
,PartialEq
, andHash
forPrimDiscriminant
- Implement
Eq
andPartialEq
for all error types - Add
as_slice
andas_ptr
methods toInput
- Implement
AsRef<[u8]>
andBorrow<[u8]>
forInput
- Implement
SizedEncode
forc_void
- Fix
<LinkedList as Encode>::Error
- Add
new_unchecked
constructor toString
andVec
- Rework
from_utf8
andfrom_utf8_unchecked
inString
- Remove
StringError
- Rework
String
to make it trivially-destructable - Actually mark
String::as_mut_str
withconst
- Unimplement
PartialOrd<{&str, alloc::string::String}>
forString
- Implement
PartialEq<str>
forString
- Unimplement
PartialOrd<{[T; M], &[T], alloc::vec::Vec<T>}>
forVec<T, N>
- Remove
is_full
method fromString
andVec
- Implement
Copy
forString
- Implement
PartialEq<{Self, [u8], &[u8]}>
,Eq
, andDebug
forInput
- Implement
PartialEq<[U]>
forVec<T, ..>
- Implement
PartialEq<Vec<U, ..>>
foralloc::vec::Vec<T>
- Implement
PartialEq<String>
foralloc::string::String
- Add
is_char_boundary
andas_mut_bytes
methods toString
- Add doc aliases
- Update lints
- Fix atomics being imported from
std
0.15.3
- Update readme
- Fix soundness hole in
<Vec as Decode>::decode
0.15.2
- Clean up code
- Update docs
- Update lints
- Update crate metadata
0.15.1
- Update logo
0.15.0
- Rename
SizedStr
toString
- Rename
SizedSlice
toVec
- Mark
String::as_mut_str
withconst
- Update readme
- Relicence under MPL 2.0
- Licence logo
- Rename
SizedIter
toIntoIter
- Update docs
- Update copyright notices
- Add
vec
,string
, andslot
modules - Refactor tests
- Clean up code
- Rename
LengthError
fields - Implement
PartialEq
andEq
for some error types - Remove
Utf16Error
andCStringDecodeError
- Rename
StrError
toStringError
- Remove
Self: Sized
requirement fromSizedEncode
- Remove
T: Sized
requirement fromEncode
forPhantomData<T>
- Unimplement
Decode
foralloc::vec::Vec
,alloc::string::String
,CString
,LinkedList
,HashMap
, andHashSet
- Unimplement
DecodeBorrowed
foralloc::vec::Vec
,alloc::string::String
, andCString
- Implement
Debug
forOutput
- Remove
B: Sized
requirement fromDecode
forCow<'_, B>
- Add
must_use
attribute toVec::{each_ref, each_mut}
- Rework
Vec::set_len
and addset_len_unchecked
method - Remove
{String, Vec}::capacity
- Implement
SizedEncode
forPhantomPinned
- License Cargo manifests
- License benchmarks
- Add temporary
never-type
,f16
, andf128
feature flags - Remove
chars
andchar_indices
fromString
- Implement
Drop
forIntoIter
andVec
- Implement
Encode
,SizedEncode
, andDecode
forUnsafeCell
- Update error requirements for some
Encode
andDecode
implementations - Fix soundness hole with
Vec::copy_from_slice
- Rename
Vec::into_vec
tointo_alloc_vec
0.14.5
- Update docs icon
- Update crate descriptions
- Update homepage URLs
0.14.4
- Update docs icon
- Update homepage URL
- Fix docs entries for the
encode
anddecode
modules
0.14.3
- Update readme
- Fix
SizedEncode
implementation forBound
- Clean up code
- Fix license notices
0.14.2
- Update docs
- Update readme
- Update package description
- Clean up code
0.14.1
- Update logo
- Update readme
0.14.0
- Add more benchmarks
- Redefine
bool
scheme - Remove
BoolDecodeError
- Rename project to oct
- Rename
librum
crate tooct
- Rename
librum-macros
crate tooct-macros
- Rename
librum-benchmarks
crate tooct-benchmarks
- Update lints
- Update logo
- Restructure tests
- Rename
IStream
toInput
- Rename
OStream
toOutput
- Make
Output::write
andInput::{read, read_into}
fallible - Add
OutputError
andInputError
error types - Mark
Output::write
andInput::{read, read_into}
withconst
- Add
position
,capacity
, andremaining
methods toOutput
andInput
- Rename
SizeError
toLengthError
- Rework some error types
- Fix feature flags for
From<CStringDecodeError>
forGenericDecodeError
- Rename
Buf
toSlot
- Remove
{Output, Input}::close
- Implement
AsRef<[u8]>
,Borrow<[u8]>
,PartialEq<{Self, [u8], &[u8], &mut [u8]}>
, andEq
forOutput
- Add
as_slice
andas_ptr
methods toOutput
- Add
encode
anddecode
modules - Update homepage link
- Refactor code
- Update readme
0.13.1
- Update readme
- Null dependency patch versions
0.13.0
- Add decode benchmarks
- Add missing docs for
{Decode, Encode}::Error
- Encode numericals in little-endian
- Add
read_into
method toIStream
- Fix
<AtomicBool as Decode>::Error
(and invalid values resulting in panics fromdecode
) - Add
Copy
bound toPrimitiveDiscriminant
- Update docs
- Refactor benchmarks
- Run benchmarks multiple times
- Bump dependency versions
- Update readme
0.12.1
- Update readme
0.12.0
- Support custom errors in
Encode
andDecode
(using associatedError
type) - Further split
EncodeError
intoIsizeEncodeError
,UsizeEncodeError
,CollectionEncodeError
,RefCellEncodeError
,ItemEncodeError
, andEnumEncodeError
- Fix the
Encode
implementation ofLinkedList
- Further split
DecodeError
intoBoolDecodeError
,CharDecodeError
,CStringDecodeError
,NonZeroDecodeError
,CollectionDecodeError
,SystemTimeDecodeError
,EnumDecodeError
, andItemDecodeError
- Honour custom discriminant types
- Add
DecodeBorrowed
trait (implement appropriately) - Implement
Decode
forCow
- Refactor derive macros
- Update lints
- Rename test modules from
test
totests
- Restructure some trait implementations
- Add
proc-macro
feature flag - Add
GenericEncodeError
andGenericDecodeError
error types for derived traits - Add
PrimitiveDiscriminant
trait - Lock
Arc
implementations behind atomic widths - Add
?Sized
clauses to someEncode
implementations - Update readme
- Fix doc entry for
SizedStr::new
- Update atomic tests
- Make
SizedEncode
a safe trait - Do not automatically implement
Encode
when derivingSizedEncode
- Add
copy_from_slice
method toSizedSlice
- Add
each_ref
andeach_mut
methods toSizedSlice
- Add more benchmarks
- Remove Ciborium benchmarks
- Rename project to Librum
- Rename
bzipper
crate tolibrum
- Rename
bzipper_macros
crate tolibrum-macros
- Rename
bzipper_benchmarks
crate tolibrum-benchmarks
0.11.0
- Add
into_bytes
destructor toSizedStr
- Clean up code
- Update and add more tests
- Manually implement
<SizedIter as Iterator>::nth
- Implement
Encode
andDecode
forCString
,SystemTime
,Duration
- Implement
Encode
forCStr
- Update docs
- Fix includes in
/bzipper/src/decode/mod.rs
and/bzipper/src/sized_encode/mod.rs
- Add new
NullCString
andNarrowSystemTime
error variants toDecodeError
- Optimise
<String as Decode>::decode
- Update lints
- Implement
SizedEncode
forSystemTime
andDuration
- Update benchmark stats
- Update readme
0.10.1
- Clean up and refactor code
- Add more tests
- Fix
DoubleEndedIterator
implementation forSizedIter
0.10.0
- Clean up code
- Implement
Encode
andDecode
forCell
andHashSet
- Implement
SizedEncode
forCell
- Add missing
SizedEncode
implementations forCow
,LazyCell
, andLazyLock
- Unimplement
Decode
forCow
,LazyCell
, andLazyLock
- Add missing
Decode
implementations forRefCell
- Fix feature flags for
SizedEncode
implementations ofRc
andArc
0.9.0
- Implement
Encode
andDecode
forLinkedList
,HashMap
,Cow
,PhantomPinned
,LazyCell
,LazyLock
- Add missing
Decode
implementation forBox
- Update inline rules
- Implement traits for tuples using macros
- Implement
SizedEncode
forPhantomPinned
,Cow
,LazyCell
,LazyLock
,&_
,&mut _
- Implement
Encode
for&_
and&mut _
- Update docs
0.8.1
- Update package metadata
0.8.0
- Rename
FixedString
toSizedStr
- Implement
PartialEq<String>
andPartialOrd<String>
forSizedStr
- Add constructors
from_utf8
andfrom_utf8_unchecked
toSizedStr
- Remove
pop
,push_str
, andpush
fromSizedStr
- Implement
FromIterator<char>
forSizedStr
- Rename
Serialise
toEncode
- Rename
Deserialise
toDecode
- Remove
Sized
requirement forEncode
- Add benchmarks
- Update package metadata
- Rename
Sstream
toOStream
- Rename
Dstream
toIStream
- Update readme
- Refactor code
- Update lints
- Implement
Encode
andDecode
forIpAddr
,Ipv4Addr
,Ipv6Addr
,Mutex
,Box
,RwLock
,Rc
,Arc
,Wrapping
,Saturating
,AtomicBool
,AtomicU8
,AtomicU16
,AtomicU32
,AtomicU64
,AtomicI8
,AtomicI16
,AtomicI32
,AtomicI64
,AtomicUsize
,AtomicIsize
,SocketAddrV4
,SocketAddrV6
,SocketAddr
,Range
,RangeFrom
,RangeFull
,RangeInclusive
,RangeTo
,RangeToInclusive
,Bound
,RefCell
,String
, andVec
- Update docs
- Add
SizedSlice
type - Add
SizedIter
type - Rename
Buffer
type toBuf
- Remove
Add
andAddAssign
implementations fromSizedStr
- Add Features section to readme
- Honour explicit enumeration discriminants
- Encode enumeration discriminants as
isize
- Add
SizedEncode
trait - Outsource
MAX_SERIALISED_SIZE
toSizedEncode
asMAX_ENCODED_SIZE
- Implement
Iterator
,ExactSizeIterator
,FusedIterator
, andDoubleEndedIterator
forSizedIter
- Implement
AsRef<[T]>
andAsMut<[T]>
forSizedIter<T, ..>
- Implement
Clone
forSizedIter
- Add
as_slice
andas_mut_slice
methods toSizedIter
- Add
from_raw_parts
constructor andinto_raw_parts
destructor toSizedSlice
- Add
set_len
method toSizedSlice
- Add
len
,is_empty
,is_full
, andcapacity
methods toSizedSlice
- Add
as_slice
andas_mut_slice
methods toSizedSlice
- Add
as_ptr
andas_mut_ptr
methods toSizedSlice
- Implement
AsMut<[T]>
andAsRef<[T]>
forSizedSlice<T, ..>
- Implement
Borrow<[T]>
andBorrowMut<[T]>
forSizedSlice<T, ..>
- Implement
Deref<[T]>
andDerefMut<[T]>
forSizedSlice<T, ..>
- Implement
Debug
forSizedSlice
- Implement
Default
forSizedSlice
- Implement
Clone
forSizedSlice
- Implement
Encode
,Decode
, andSizedEncode
forSizedSlice
- Implement
Eq
andPartialEq
forSizedSlice
- Implement
Ord
andPartialOrd
forSizedSlice
- Implement
From<[T; N]>
forSizedSlice<T, N>
- Implement
Hash
forSizedSlice
- Implement
Index
andIndexMut
forSizedSlice
- Implement
IntoIterator
forSizedSlice
(including references hereto) - Implement
TryFrom<&[T]>
forSizedSlice<T, ..>
- Implement
From<SizedSlice<T, ..>>
forVec<[T]>
- Implement
From<SizedSlice<T, ..>>
forBox<[T]>
- Add
into_boxed_slice
andinto_vec
destructors toSizedSlice
- Add
into_boxed_str
andinto_string
destructors toSizedStr
- Bump Rust version to
1.83
forbzipper
- Mark
SizedStr::as_mut_ptr
as const - Implement
FromIterator<T>
forSizedSlice<T, ..>
- Make
SizedStr::new
take a&str
object - Add
is_empty
andis_full
methods toBuf
- Disallow non-empty single-line functions
- Add
SAFETY
comments - Implement
PartialEq<&mut [u8]>
andPartialEq<[u8]>
forBuf
- Implement
Index
andIndexMut
forBuf
- Add
from_raw_parts
constructor andinto_raw_parts
destructor toBuf
- Add Documentation and Contribution sections to readme
- Add Copyright & Licence section to readme
- Add Clippy configuration file
- Add more unit tests
- Add debug assertions
- Remove
as_ptr
andas_slice
methods fromIStream
andOStream
- Remove
len
,is_empty
, andis_full
methods fromIStream
andOStream
- Unimplement all manually-implemented traits from
IStream
andOStream
- Mark
new
andwrite
inOStream
as const - Mark the
read
method inIStream
as const - Add
close
destructor toOStream
andIStream
- Implement
Encode
for[T]
andstr
- Encode
usize
andisize
asu16
andi16
again - Split
Error
type intoEncodeError
,DecodeError
,Utf8Error
,Utf16Error
,SizeError
, andStringError
- Remove
Result
type - Add
error
module - Make
IStream::read
andOSream::write
panic on error - Update logo
- Add more examples to docs
- Unmark all functions in
Buf
as const - Implement
From<SizedStr>
forBox<str>
- Always implement
Freeze
,RefUnwindSafe
,Send
,Sync
,Unpin
, andUnwindSafe
forBuf
- Add Examples section to readme
- Implement
SizedEncode
for all previousEncode
types - Bump dependency versions
- Implement
SizedEncode
forIpAddr
,Ipv4Addr
,Ipv6Addr
,Mutex
,Box
,RwLock
,Rc
,Arc
,Wrapping
,Saturating
,AtomicBool
,AtomicU8
,AtomicU16
,AtomicU32
,AtomicU64
,AtomicI8
,AtomicI16
,AtomicI32
,AtomicI64
,AtomicUsize
,AtomicIsize
,SocketAddrV4
,SocketAddrV6
,SocketAddr
,Range
,RangeFrom
,RangeFull
,RangeInclusive
,RangeTo
,RangeToInclusive
,Bound
, andRefCell
0.7.0
- Make
alloc
andstd
default features - Make serialisations variably sized again
- Refactor derive implementations
- Completely rework streams
- Fix tuple deserialisation
- Encode
FixedString
in UTF-8 - Remove methods
from_chars
andset_len
fromFixedString
- Rename
as_slice
andas_mut_slice
methods inFixedString
toas_str
andas_mut_str
- Add methods
as_bytes
,push_str
,chars
,capacity
, andchar_indices
toFixedString
- Rework
FixedString
traits - Remove
FixedIter
- Update lints
- Add methods
set_len
andset_len_unchecked
toBuffer
- Elaborate docs
- Update readme
- Do not require
Serialise
forDeserialise
- Rename
SERIALISED_SIZE
inSerialise
toMAX_SERIALISED_SIZE
- Use streams in
Serialise
andDeserialise
- Drop
Serialise
requirement forBuffer
- Add methods
with_capacity
andcapacity
toBuffer
0.6.2
- Fix
Deserialise
derive for unit variants - Refactor
Serialise
derive for enumerations
0.6.1
- Bump dependency version
- Update docs
- Add more examples
0.6.0
- Update readme
- Add
Buffer
type - Bump minor version
- Implement
PartialEq<&[char]>
forFixedString
- Update tests
- Implement
PartialOrd<&[char]>
andPartialOrd<&str>
forFixedString
- Remove custom methods
get
,get_unchecked
,get_mut
, andget_unchecked_mut
,iter
, anditer_mut
fromFixedString
0.5.2
- Respecify version numbers
0.5.1
- Specify
bzipper_macros
version
0.5.0
- Bump minor version
- Add macros crate
- Add derive macros
- Update package metadata
- Update readme
- Expand docs
- Require fixed size (de)serialisations
- Add more error variants
- Require
bzipper::Error
for (de)serialisation - Reworks streams
- Remove
Buffer
- Rework
FixedString
- Serialise
usize
andisize
asu32
andi32
, respectively - Rework arrays (de)serialisation
- Fix
Result
serialisations - Add new logo
- Add features
alloc
andstd
- Specify rustc version
- Rename
FixedStringIter
toFixedIter
- Implement
Serialise
andDeserialise
for single tuples andPhantomData
0.4.7
- Extensively elaborate docs
- Update readme
0.4.6
- Fix docs logo (again)
- Update docs (add examples)
0.4.5
- Fix package metadata :(
0.4.4
- Fix docs logo
0.4.3
- Reformat changelog
- Update logo
- Add docs logo
0.4.2
- Update package metadata
0.4.1
- Update readme
0.4.0
- Add logo
- Clean up code
- Fix array deserialisation (require
Default
) - Bump minor
- Update commenting
- Make serialisations fallible
- Impl
Serialise
andDeserialise
forusize
andisize
(restrict to 16 bits) - Add new errors:
UsizeOutOfRange
,IsizeOutOfRange
- Rework sstreams
- Add buffer type
- Fix serialisation of
Option<T>
- Disable
std
- Rename error:
EndOfDStream
->EndOfStream
- Update documentation
- Update readme
- Reformat changelog
0.3.0
- Bump minor
- Document errors
- Rename:
ArrayLengthMismatch
->ArrayTooShort
- Remove error
FixedStringTooShort
- Rename:
InvalidUtf8
->BadString
- Rework errors
- Rename methods:
as_d_stream
->as_dstream
,to_s_stream
->to_sstream
- Add
SERIALISATION_LIMIT
constant toSerialise
- Make some deserialisations infallible
- Add method
append_byte
toSStream
- Add method
take_byte
toDStream
- Rename
SStream
->Sstream
,DStream
->Dstream
- Update readme
- Update documentation
- Make
Deserialise
requireSerialise
- Fix copyright/license notice in
"src/serialise/test.rs"
0.2.0
- Clean up code
- Implement
Ord
andPartialOrd
forFixedString
- Implement
Index
andIndexMut
forFixedString
- Add
get
andget_mut
methods toFixedString
- Implement
From<[char; N]>
forFixedString
- Bump minor
- Implement
Serialise
andDeserialise
for tuples
0.1.0
- Bump minor
- Export all in crate root
- Add fixed string type
- Add new errors
- Update documentation
- Add
as_d_stream
method toSStream
- Add
to_s_stream
andas_slice
methods toDStream
0.0.2
- Add license files
0.0.1
- Fix copyright notices
- Add license notices
- Update readme
0.0.0
- Add changelog
- Fork from
backspace
- Add gitignore
- Add documentation
- Add tests
- License under LGPL-3
- Configure lints
- Add readme