pub struct BufferMap { /* private fields */ }Expand description
Small-N buffer lookup keyed by interned Arc<str> names.
Typical reference interpreter programs have ≤ 8 declared buffers. A
linear scan over 8 entries is branch-predicted and hits L1 cache; hashing
each access (as HashMap<String, Buffer> did) burned a SipHash-1-3 on
every load/store in the inner interpreter loop. This struct preserves
the public get / get_mut / insert shape consumers depend on while
eliminating the per-lookup hash + heap traffic.
Implementations§
Source§impl BufferMap
impl BufferMap
Sourcepub fn insert(
&mut self,
name: impl Into<Arc<str>>,
buffer: Buffer,
) -> Option<Buffer>
pub fn insert( &mut self, name: impl Into<Arc<str>>, buffer: Buffer, ) -> Option<Buffer>
Insert or overwrite a buffer. Returns the previous value when the key already existed.
Sourcepub fn iter(&self) -> impl Iterator<Item = (&str, &Buffer)>
pub fn iter(&self) -> impl Iterator<Item = (&str, &Buffer)>
Iterate (name, buffer) pairs in insertion order.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BufferMap
impl RefUnwindSafe for BufferMap
impl Send for BufferMap
impl Sync for BufferMap
impl Unpin for BufferMap
impl UnsafeUnpin for BufferMap
impl UnwindSafe for BufferMap
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more