Macro hard::buffer [−][src]
macro_rules! buffer {
($size : expr $(;) ?) => { ... };
}
Expand description
Create a fixed-size anonymous buffer.
buffer!(Size)
will initialise a new buffer of length Size
bytes, returning
Result<Buffer, HardError>
.
The buffer will implement the following traits:
Buffer
andBufferMut
AsRef<[u8; Size]>
andAsMut<[u8; Size]>
Borrow<[u8; $size]>
and [`BorrowMut<[u8;Debug
Deref<Target = [u8; Size]>
andDerefMut
$size]>`](std::borrow::BorrowMut)PartialEq<Rhs = BufferMut or BufferReadOnly>
andEq
- This implementation uses a constant-time comparison function, suitable for comparing sensitive data without the risk of timing attacks.
Pointer
Example Usage
use hard::buffer;
// Create a 32-byte buffer
let mut some_buffer = buffer!(32).unwrap();
some_buffer.copy_from_slice(b"Copy this data into that buffer.");
let mut another_buffer = buffer!(32).unwrap();
some_buffer.copy_from_slice(b"We'll compare these two buffers.");
// This comparison is a constant-time equality-check of the contents of the two buffers
assert!(some_buffer != another_buffer);