pub unsafe trait EncodeFast: Encode {
// Provided methods
fn encoded_size_fast(&self) -> usize { ... }
unsafe fn encode_fast(&self, buffer: *mut u8, offset: &mut usize) { ... }
unsafe fn encode_fast_at_offset(&self, buffer: *mut u8, offset: usize) { ... }
unsafe fn decode_and_append_fast(
buffer: *const u8,
offset: &mut usize,
output: &mut Vec<u8>,
) { ... }
unsafe fn decode_and_append_fast_at_offset(
buffer: *const u8,
offset: usize,
output: &mut Vec<u8>,
) { ... }
}Expand description
Extreme-performance encoding path.
Currently selected explicitly by log_fast!() / prewarm_fast!();
only supports an empty format specifier by default.
§Safety
Implementors must guarantee that encode_fast writes exactly
encoded_size_fast() bytes starting at buffer + *offset, and that
decode_and_append_fast reads the same number of bytes from a buffer
previously written by encode_fast.
Provided Methods§
Sourcefn encoded_size_fast(&self) -> usize
fn encoded_size_fast(&self) -> usize
Returns the encoded byte size using the fast path (defaults to Encode::encoded_size).
Sourceunsafe fn encode_fast(&self, buffer: *mut u8, offset: &mut usize)
unsafe fn encode_fast(&self, buffer: *mut u8, offset: &mut usize)
Encodes the value using the fast path (defaults to Encode::encode).
§Safety
Same requirements as Encode::encode.
Sourceunsafe fn encode_fast_at_offset(&self, buffer: *mut u8, offset: usize)
unsafe fn encode_fast_at_offset(&self, buffer: *mut u8, offset: usize)
Encodes the value using the fast path at a fixed byte offset.
The default implementation forwards to Encode::encode_at_offset,
which lets fixed-width types benefit from compile-time layout
specialization without duplicating logic.
§Safety
Same requirements as Encode::encode_at_offset.
Sourceunsafe fn decode_and_append_fast(
buffer: *const u8,
offset: &mut usize,
output: &mut Vec<u8>,
)
unsafe fn decode_and_append_fast( buffer: *const u8, offset: &mut usize, output: &mut Vec<u8>, )
Decodes and appends using the fast path with an empty format specifier
(defaults to Encode::decode_and_format).
§Safety
Same requirements as Encode::decode_and_format.
Sourceunsafe fn decode_and_append_fast_at_offset(
buffer: *const u8,
offset: usize,
output: &mut Vec<u8>,
)
unsafe fn decode_and_append_fast_at_offset( buffer: *const u8, offset: usize, output: &mut Vec<u8>, )
Decodes and appends using the fast path from buffer + offset.
The default implementation forwards to EncodeFast::decode_and_append_fast
using a local mutable offset.
§Safety
Same requirements as EncodeFast::decode_and_append_fast.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.