Commit graph

8 commits

Author SHA1 Message Date
3175393f9e Update lints; Rewrite benchmarks; Update readme; 2025-04-11 15:53:31 +02:00
ffb19c5a97 Clean up code; Again make 'bool' decoding fallible; Bring back 'BoolDecodeError' error; Add 'BadChar' and 'NonBool' variants to 'GenericDecodeError'; Fix 'GenericDecodeError' not implementing 'From<CharDecodeError>'; Implement 'From<BoolDecodeError>' for 'GenericDecodeError'; Fix '<Option as Decode>::Error' not being a form of 'EnumDecodeError'; Remove 'string' and 'vec' modules (including contents); Remove 'string' and 'vec' macros; Update readme; Fix '<{Option, Result, SocketAddr} as Encode>::Error' not being forms of 'EnumEncodeError'; 2025-04-04 18:08:27 +02:00
dcdec20b64 Update readme; Clean up code; Update tests; 2025-04-01 21:23:45 +02:00
c764c4b724 Remove 'Vec::set_len'; Rename 'Vec::set_len_unchecked' to 'Vec::set_len'; Update repository link; Always expose 'SystemTimeDecodeError'; Update lints; Migrate Bincode benchmark to version 2.0; 2025-04-01 16:04:55 +02:00
464da12e45 Update readme; Update docs; Update lints; 2025-01-15 20:18:02 +01:00
12975eabf5 Reimplement 'Decode' for 'alloc::vec::Vec', 'alloc::string::String', 'CString', 'LinkedList', 'HashMap', and 'HashSet'; Reimplement 'DecodeBorrowed' for 'alloc::vec::Vec', 'alloc::string::String', and 'CString'; Update and add tests; Update readme; Clean up code; Implement 'From<Infallible>' for all error types; Update docs; Rework 'EnumEncodeError' and 'EnumDecodeError'; Add 'encode_char' benchmark; Implement 'Encode' and 'Decode' for 'OsStr', 'OsString', 'c_void', and 'BinaryHeap'; Remove 'never-type' feature flag; Rework 'PrimDiscriminant' as 'PrimRepr'; Add 'PrimDiscriminant' enumeration; Implement 'From<T: PrimRepr>' for 'PrimDiscriminant'; Implement 'PrimRepr' for 'u8', 'u16', 'u32', 'u64', 'u128', 'usize', 'i8', 'i16', 'i32', 'i64', 'i128', and 'isize'; Implement 'Debug', 'Display', 'Binary', 'Octal', 'LowerHex', 'UpperHex', 'LowerExp', and 'UpperExp' for 'PrimDiscriminant'; Implement 'Clone', 'Copy', 'Eq', 'PartialEq', and 'Hash' for 'PrimDiscriminant'; Implement 'Eq' and 'PartialEq' for **all** error types; Add 'as_slice' and 'as_ptr' methods to 'Input'; Implement 'AsRef<[u8]>' and 'Borrow<[u8]>' for 'Input'; Implement 'SizedEncode' for 'c_void'; Fix '<LinkedList as Encode>::Error'; Add 'new_unchecked' constructor to 'String' and 'Vec'; Rework 'from_utf8' and 'from_utf8_unchecked' in 'String'; Remove 'StringError'; Rework 'String' to make it trivially-destructable; Actually mark 'String::as_mut_str' with 'const'; Unimplement 'PartialOrd<{&str, alloc::string::String}>' for 'String'; Implement 'PartialEq<str>' for 'String'; Unimplement 'PartialOrd<{[T; M], &[T], alloc::vec::Vec<T>}>' for 'Vec<T, N>'; Remove 'is_full' method from 'String' and 'Vec'; Implement 'Copy' for 'String'; Implement 'PartialEq<{Self, [u8], &[u8]}>', 'Eq', and 'Debug' for 'Input'; Implement 'PartialEq<[U]>' for 'Vec<T, ..>'; Implement 'PartialEq<Vec<U, ..>>' for 'alloc::vec::Vec<T>'; Implement 'PartialEq<String>' for 'alloc::string::String'; Add 'is_char_boundary' and 'as_mut_bytes' methods to 'String'; Add doc aliases; Update lints; Fix atomics being imported from 'std'; 2025-01-14 21:58:12 +01:00
44032dc551 Rename 'SizedStr' to 'String'; Rename 'SizedSlice' to 'Vec'; Mark 'String::as_mut_str' with 'const'; Update readme; Relicence under MPL 2.0; Licence logo; Rename 'SizedIter' to 'IntoIter'; Update docs; Update copyright notices; Add 'vec', 'string', and 'slot' modules; Refactor tests; Clean up code; Rename 'LengthError' fields; Implement 'PartialEq' and 'Eq' for some error types; Remove 'Utf16Error' and 'CStringDecodeError'; Rename 'StrError' to 'StringError'; Remove 'Self: Sized' requirement from 'SizedEncode'; Remove 'T: Sized' requirement from 'Encode' for 'PhantomData<T>'; Unimplement 'Decode' for 'alloc::vec::Vec', 'alloc::string::String', 'CString', 'LinkedList', 'HashMap', and 'HashSet'; Unimplement 'DecodeBorrowed' for 'alloc::vec::Vec', 'alloc::string::String', and 'CString'; Implement 'Debug' for 'Output'; Remove 'B: Sized' requirement from 'Decode' for 'Cow<'_, B>'; Add 'must_use' attribute to 'Vec::{each_ref, each_mut}'; Rework 'Vec::set_len' and add 'set_len_unchecked' method; Remove '{String, Vec}::capacity'; Implement 'SizedEncode' for 'PhantomPinned'; License Cargo manifests; License benchmarks; Add temporary 'never-type', 'f16', and 'f128' feature flags; Remove 'chars' and 'char_indices' from 'String'; Implement 'Drop' for 'IntoIter' and 'Vec'; Implement 'Encode', 'SizedEncode', and 'Decode' for 'UnsafeCell'; Update error requirements for some 'Encode' and 'Decode' implementations; Fix soundness hole with 'Vec::copy_from_slice'; Rename 'Vec::into_vec' to 'into_alloc_vec'; 2025-01-09 11:21:06 +01:00
b6f171e913 Add more benchmarks; Redefine 'bool' scheme; Remove 'BoolDecodeError'; Rename project to *oct*; Rename 'librum' crate to 'oct'; Rename 'librum-macros' crate to 'oct-macros'; Rename 'librum-benchmarks' crate to 'oct-benchmarks'; Update lints; Update logo; Restructure tests; Rename 'IStream' to 'Input'; Rename 'OStream' to 'Output'; Make 'Output::write' and 'Input::{read, read_into}' fallible; Add 'OutputError' and 'InputError' error types; Mark 'Output::write' and 'Input::{read, read_into}' with 'const'; Add 'position', 'capacity', and 'remaining' methods to 'Output' and 'Input'; Rename 'SizeError' to 'LengthError'; Rework some error types; Fix feature flags for 'From<CStringDecodeError>' for 'GenericDecodeError'; Rename 'Buf' to 'Slot'; Remove '{Output, Input}::close'; Implement 'AsRef<[u8]>', 'Borrow<[u8]>', 'PartialEq<{Self, [u8], &[u8], &mut [u8]}>', and 'Eq' for 'Output'; Add 'as_slice' and 'as_ptr' methods to 'Output'; Add 'encode' and 'decode' modules; Update homepage link; Refactor code; Update readme; 2024-12-20 11:40:26 +01:00