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

Method write_all

crates/tinywasm/src/store/memory/mod.rs:55–71  ·  view source on GitHub ↗

Writes all bytes in `src` starting at `addr`, or returns `None` if any byte could not be written.

(&mut self, addr: usize, src: &[u8])

Source from the content-addressed store, hash-verified

53
54 /// Writes all bytes in `src` starting at `addr`, or returns `None` if any byte could not be written.
55 fn write_all(&mut self, addr: usize, src: &[u8]) -> Option<()> {
56 let end = addr.checked_add(src.len())?;
57 if end > self.len() {
58 return None;
59 }
60
61 let mut offset = 0;
62 while offset < src.len() {
63 let written = self.write(addr + offset, &src[offset..]);
64 if written == 0 {
65 return None;
66 }
67 offset += written;
68 }
69
70 Some(())
71 }
72
73 /// Fills the range `[addr, addr + len)` with `val`.
74 fn fill(&mut self, addr: usize, len: usize, val: u8) -> Option<()> {

Callers 6

fillMethod · 0.45
copy_withinMethod · 0.45
write_16Method · 0.45
write_32Method · 0.45
write_64Method · 0.45
write_128Method · 0.45

Implementers 3

vec.rscrates/tinywasm/src/store/memory/vec.r
paged.rscrates/tinywasm/src/store/memory/paged
lazy.rscrates/tinywasm/src/store/memory/lazy.

Calls 2

lenMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected