MCPcopy Create free account
hub / github.com/explodingcamera/tinywasm / read

Method read

crates/tinywasm/src/store/memory/paged.rs:155–171  ·  view source on GitHub ↗
(&self, addr: usize, dst: &mut [u8])

Source from the content-addressed store, hash-verified

153
154 #[inline(always)]
155 fn read(&self, addr: usize, dst: &mut [u8]) -> usize {
156 if addr >= self.len || dst.is_empty() {
157 return 0;
158 }
159
160 let chunk_idx = addr >> self.chunk_shift;
161 let chunk_offset = addr & self.chunk_mask;
162 let chunk_end = min((chunk_idx + 1) << self.chunk_shift, self.len);
163 let read_len = min(chunk_end - addr, dst.len());
164 if let Some(chunk) = self.chunk_slice(chunk_idx) {
165 dst[..read_len].copy_from_slice(&chunk[chunk_offset..chunk_offset + read_len]);
166 } else {
167 dst[..read_len].fill(0);
168 }
169
170 read_len
171 }
172
173 #[inline(always)]
174 fn write(&mut self, addr: usize, src: &[u8]) -> usize {

Callers

nothing calls this directly

Calls 5

chunk_sliceMethod · 0.80
is_emptyMethod · 0.45
lenMethod · 0.45
copy_from_sliceMethod · 0.45
fillMethod · 0.45

Tested by

no test coverage detected