Octonary transcodings. https://crates.io/crates/oct/
Find a file
Gabriel Bjørnager Jensen 8922c0d4e2
Add 'slice_from_octs' and 'slice_from_octs_mut' functions to 'FromOcts'; Add 'transmute' and 'transmute_unchecked' functions; Add 'io' module; Add 'Serialise' and 'Deserialise' traits to 'io'; Add 'Cursor' type to 'io'; Add 'new' constructor to 'Cursor'; Add 'into_inner' destructor to 'Cursor'; Add 'Error' and 'Result' types to 'io'; Add 'set_position' method to 'Cursor'; Add 'position' method to 'Cursor'; Add 'serialise' method to 'Serialise'; Add 'deserialise' method to 'Deserialise'; Bump MSRV to 1.89; Add 'swap_octs' method to 'FromOcts'; Add 'Init' trait; Add 'as_uninit_octs' and 'as_uninit_octs_mut' methods to 'IntoOcts'; Implement 'IntoOcts' for all types; Always implement 'FromOcts' and 'Zeroable' for 'MaybeUninit'; Update docs; Update tests; Support 'AtomicUsize' and 'AtomicIsize'; Add 'Write' and 'Read' traits to 'io'; Add 'write_all' method to 'Write'; Add 'read_exact' and 'read_array' methods to 'Read'; Add 'flush' method to 'Write'; Add 'read' method to 'Read'; Add 'write' method to 'Write'; Add 'ErrorKind' enumeration to 'io'; Add 'kind' method to 'io::Error'; Add 'from_raw_os_error' constructor to 'io::Error'; Add 'raw_os_error' method to 'io::Error'; Add 'last_os_error' constructor to 'io::Error'; Add 'Sink' and 'Empty' types to 'io'; Add 'sink' and 'empty' functions to 'io'; Support AArch64 types; Support architectural 'f16' types; Update readme; Add 'by_ref' method to 'Read' and 'Write'; Add 'Seek' trait to 'io'; Add 'seek' method to 'Seek'; Add 'SeekFrom' enumeration to 'io'; Add 'rewind', 'stream_position', and 'seek_relative' methods to 'Seek'; Add 'Bytes' iterator type to 'io'; Add 'bytes' method to 'Read'; Add 'get_ref' and 'get_mut' methods to 'io::Error'; Add 'into_inner' destructor to 'io::Error'; Add 'new' constructor to 'io::Error';
2025-12-12 15:39:32 +01:00
oct Add 'slice_from_octs' and 'slice_from_octs_mut' functions to 'FromOcts'; Add 'transmute' and 'transmute_unchecked' functions; Add 'io' module; Add 'Serialise' and 'Deserialise' traits to 'io'; Add 'Cursor' type to 'io'; Add 'new' constructor to 'Cursor'; Add 'into_inner' destructor to 'Cursor'; Add 'Error' and 'Result' types to 'io'; Add 'set_position' method to 'Cursor'; Add 'position' method to 'Cursor'; Add 'serialise' method to 'Serialise'; Add 'deserialise' method to 'Deserialise'; Bump MSRV to 1.89; Add 'swap_octs' method to 'FromOcts'; Add 'Init' trait; Add 'as_uninit_octs' and 'as_uninit_octs_mut' methods to 'IntoOcts'; Implement 'IntoOcts' for all types; Always implement 'FromOcts' and 'Zeroable' for 'MaybeUninit'; Update docs; Update tests; Support 'AtomicUsize' and 'AtomicIsize'; Add 'Write' and 'Read' traits to 'io'; Add 'write_all' method to 'Write'; Add 'read_exact' and 'read_array' methods to 'Read'; Add 'flush' method to 'Write'; Add 'read' method to 'Read'; Add 'write' method to 'Write'; Add 'ErrorKind' enumeration to 'io'; Add 'kind' method to 'io::Error'; Add 'from_raw_os_error' constructor to 'io::Error'; Add 'raw_os_error' method to 'io::Error'; Add 'last_os_error' constructor to 'io::Error'; Add 'Sink' and 'Empty' types to 'io'; Add 'sink' and 'empty' functions to 'io'; Support AArch64 types; Support architectural 'f16' types; Update readme; Add 'by_ref' method to 'Read' and 'Write'; Add 'Seek' trait to 'io'; Add 'seek' method to 'Seek'; Add 'SeekFrom' enumeration to 'io'; Add 'rewind', 'stream_position', and 'seek_relative' methods to 'Seek'; Add 'Bytes' iterator type to 'io'; Add 'bytes' method to 'Read'; Add 'get_ref' and 'get_mut' methods to 'io::Error'; Add 'into_inner' destructor to 'io::Error'; Add 'new' constructor to 'io::Error'; 2025-12-12 15:39:32 +01:00
oct-macros Restart project; Add 'oct' and 'oct-macros' crates; Add 'alloc' and 'std' features; Add 'unstable_docs' feature; Add 'f16' and 'f128' features; Add 'proc_macro' feature; Add 'IntoOcts' trait; Add 'as_octs' and 'as_octs_mut' methods to 'IntoOcts'; Bump MSRV to 1.89; Add 'FromOcts' trait; Add 'read_from_octs', 'ref_from_octs', and 'mut_from_octs' constructors to 'FromOcts'; Add 'Zeroable' trait; Add 'zeroed' constructor to 'Zeroable'; Add 'make_zeroed' method to 'Zeroable'; Add 'Immutable' trait; Add 'oned' constructor to 'FromOcts'; Add 'make_oned' method to 'FromOcts'; 2025-12-04 16:56:30 +01:00
.gitignore Add changelog; Fork from ; Add gitignore; Add documentation; Add tests; License under LGPL-3; Configure lints; Add readme; 2024-06-08 10:32:46 +02:00
Cargo.toml Add 'slice_from_octs' and 'slice_from_octs_mut' functions to 'FromOcts'; Add 'transmute' and 'transmute_unchecked' functions; Add 'io' module; Add 'Serialise' and 'Deserialise' traits to 'io'; Add 'Cursor' type to 'io'; Add 'new' constructor to 'Cursor'; Add 'into_inner' destructor to 'Cursor'; Add 'Error' and 'Result' types to 'io'; Add 'set_position' method to 'Cursor'; Add 'position' method to 'Cursor'; Add 'serialise' method to 'Serialise'; Add 'deserialise' method to 'Deserialise'; Bump MSRV to 1.89; Add 'swap_octs' method to 'FromOcts'; Add 'Init' trait; Add 'as_uninit_octs' and 'as_uninit_octs_mut' methods to 'IntoOcts'; Implement 'IntoOcts' for all types; Always implement 'FromOcts' and 'Zeroable' for 'MaybeUninit'; Update docs; Update tests; Support 'AtomicUsize' and 'AtomicIsize'; Add 'Write' and 'Read' traits to 'io'; Add 'write_all' method to 'Write'; Add 'read_exact' and 'read_array' methods to 'Read'; Add 'flush' method to 'Write'; Add 'read' method to 'Read'; Add 'write' method to 'Write'; Add 'ErrorKind' enumeration to 'io'; Add 'kind' method to 'io::Error'; Add 'from_raw_os_error' constructor to 'io::Error'; Add 'raw_os_error' method to 'io::Error'; Add 'last_os_error' constructor to 'io::Error'; Add 'Sink' and 'Empty' types to 'io'; Add 'sink' and 'empty' functions to 'io'; Support AArch64 types; Support architectural 'f16' types; Update readme; Add 'by_ref' method to 'Read' and 'Write'; Add 'Seek' trait to 'io'; Add 'seek' method to 'Seek'; Add 'SeekFrom' enumeration to 'io'; Add 'rewind', 'stream_position', and 'seek_relative' methods to 'Seek'; Add 'Bytes' iterator type to 'io'; Add 'bytes' method to 'Read'; Add 'get_ref' and 'get_mut' methods to 'io::Error'; Add 'into_inner' destructor to 'io::Error'; Add 'new' constructor to 'io::Error'; 2025-12-12 15:39:32 +01:00
CHANGELOG.md Add 'slice_from_octs' and 'slice_from_octs_mut' functions to 'FromOcts'; Add 'transmute' and 'transmute_unchecked' functions; Add 'io' module; Add 'Serialise' and 'Deserialise' traits to 'io'; Add 'Cursor' type to 'io'; Add 'new' constructor to 'Cursor'; Add 'into_inner' destructor to 'Cursor'; Add 'Error' and 'Result' types to 'io'; Add 'set_position' method to 'Cursor'; Add 'position' method to 'Cursor'; Add 'serialise' method to 'Serialise'; Add 'deserialise' method to 'Deserialise'; Bump MSRV to 1.89; Add 'swap_octs' method to 'FromOcts'; Add 'Init' trait; Add 'as_uninit_octs' and 'as_uninit_octs_mut' methods to 'IntoOcts'; Implement 'IntoOcts' for all types; Always implement 'FromOcts' and 'Zeroable' for 'MaybeUninit'; Update docs; Update tests; Support 'AtomicUsize' and 'AtomicIsize'; Add 'Write' and 'Read' traits to 'io'; Add 'write_all' method to 'Write'; Add 'read_exact' and 'read_array' methods to 'Read'; Add 'flush' method to 'Write'; Add 'read' method to 'Read'; Add 'write' method to 'Write'; Add 'ErrorKind' enumeration to 'io'; Add 'kind' method to 'io::Error'; Add 'from_raw_os_error' constructor to 'io::Error'; Add 'raw_os_error' method to 'io::Error'; Add 'last_os_error' constructor to 'io::Error'; Add 'Sink' and 'Empty' types to 'io'; Add 'sink' and 'empty' functions to 'io'; Support AArch64 types; Support architectural 'f16' types; Update readme; Add 'by_ref' method to 'Read' and 'Write'; Add 'Seek' trait to 'io'; Add 'seek' method to 'Seek'; Add 'SeekFrom' enumeration to 'io'; Add 'rewind', 'stream_position', and 'seek_relative' methods to 'Seek'; Add 'Bytes' iterator type to 'io'; Add 'bytes' method to 'Read'; Add 'get_ref' and 'get_mut' methods to 'io::Error'; Add 'into_inner' destructor to 'io::Error'; Add 'new' constructor to 'io::Error'; 2025-12-12 15:39:32 +01:00
clippy.toml Implement 'Default' for 'vec::IntoIter'; Mark 'String::is_char_boundary' with 'const'; Update lints; Clean up code; Bump MSRV to '1.86' for 'oct'; Bump Rust edition to '2024' for 'oct' and 'oct-macros' (and 'oct-benchmarks'); Fix '<vec::IntoIter as Iterator>::nth' not considering the current position; Optimise 'Iterator', 'DoubleEndedIterator', and 'ExactSizeIterator' implementations for 'vec::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>>' for 'String'; Bring back 'vec' macro; Update syntax for 'string' macro; Unmark 'vec::IntoIter::{as_slice, as_mut_slice}' with 'const'; Optimise 'PartialEq', 'Eq', and 'PartialOrd' implementations; Rewrite 'Clone' implementations for 'Vec' and 'vec::IntoIter'; Update tests; Unimplement 'PartialEq<&mut [u8]>' for 'Slot'; Rewrite 'Vec::into_boxed_slice'; Rename 'Vec::into_alloc_vec' to 'into_vec'; 2025-02-22 21:53:46 +01:00
DOC-ICON.svg Restart project; Add 'oct' and 'oct-macros' crates; Add 'alloc' and 'std' features; Add 'unstable_docs' feature; Add 'f16' and 'f128' features; Add 'proc_macro' feature; Add 'IntoOcts' trait; Add 'as_octs' and 'as_octs_mut' methods to 'IntoOcts'; Bump MSRV to 1.89; Add 'FromOcts' trait; Add 'read_from_octs', 'ref_from_octs', and 'mut_from_octs' constructors to 'FromOcts'; Add 'Zeroable' trait; Add 'zeroed' constructor to 'Zeroable'; Add 'make_zeroed' method to 'Zeroable'; Add 'Immutable' trait; Add 'oned' constructor to 'FromOcts'; Add 'make_oned' method to 'FromOcts'; 2025-12-04 16:56:30 +01:00
LICENCE 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
LOGO.svg Restart project; Add 'oct' and 'oct-macros' crates; Add 'alloc' and 'std' features; Add 'unstable_docs' feature; Add 'f16' and 'f128' features; Add 'proc_macro' feature; Add 'IntoOcts' trait; Add 'as_octs' and 'as_octs_mut' methods to 'IntoOcts'; Bump MSRV to 1.89; Add 'FromOcts' trait; Add 'read_from_octs', 'ref_from_octs', and 'mut_from_octs' constructors to 'FromOcts'; Add 'Zeroable' trait; Add 'zeroed' constructor to 'Zeroable'; Add 'make_zeroed' method to 'Zeroable'; Add 'Immutable' trait; Add 'oned' constructor to 'FromOcts'; Add 'make_oned' method to 'FromOcts'; 2025-12-04 16:56:30 +01:00
README.md Add 'slice_from_octs' and 'slice_from_octs_mut' functions to 'FromOcts'; Add 'transmute' and 'transmute_unchecked' functions; Add 'io' module; Add 'Serialise' and 'Deserialise' traits to 'io'; Add 'Cursor' type to 'io'; Add 'new' constructor to 'Cursor'; Add 'into_inner' destructor to 'Cursor'; Add 'Error' and 'Result' types to 'io'; Add 'set_position' method to 'Cursor'; Add 'position' method to 'Cursor'; Add 'serialise' method to 'Serialise'; Add 'deserialise' method to 'Deserialise'; Bump MSRV to 1.89; Add 'swap_octs' method to 'FromOcts'; Add 'Init' trait; Add 'as_uninit_octs' and 'as_uninit_octs_mut' methods to 'IntoOcts'; Implement 'IntoOcts' for all types; Always implement 'FromOcts' and 'Zeroable' for 'MaybeUninit'; Update docs; Update tests; Support 'AtomicUsize' and 'AtomicIsize'; Add 'Write' and 'Read' traits to 'io'; Add 'write_all' method to 'Write'; Add 'read_exact' and 'read_array' methods to 'Read'; Add 'flush' method to 'Write'; Add 'read' method to 'Read'; Add 'write' method to 'Write'; Add 'ErrorKind' enumeration to 'io'; Add 'kind' method to 'io::Error'; Add 'from_raw_os_error' constructor to 'io::Error'; Add 'raw_os_error' method to 'io::Error'; Add 'last_os_error' constructor to 'io::Error'; Add 'Sink' and 'Empty' types to 'io'; Add 'sink' and 'empty' functions to 'io'; Support AArch64 types; Support architectural 'f16' types; Update readme; Add 'by_ref' method to 'Read' and 'Write'; Add 'Seek' trait to 'io'; Add 'seek' method to 'Seek'; Add 'SeekFrom' enumeration to 'io'; Add 'rewind', 'stream_position', and 'seek_relative' methods to 'Seek'; Add 'Bytes' iterator type to 'io'; Add 'bytes' method to 'Read'; Add 'get_ref' and 'get_mut' methods to 'io::Error'; Add 'into_inner' destructor to 'io::Error'; Add 'new' constructor to 'io::Error'; 2025-12-12 15:39:32 +01:00

Oct

This library provides facilities for transcoding objects to and from octonary (bytewise) representations. This includes in-place transmutations (similarly to e.g. Zerocopy and bytemuck) as well (de)serialisations (similarly to e.g. Serde and Bincode). Additionally, this crate also provides a port of the std::io module for use in no_std crates.