From 8ec4edc977e0ed87f86c7e74c13d3633cb788069 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Sun, 12 May 2024 08:21:14 -0700 Subject: Revert "Use strings for errors." This reverts commit 7b87d7185fc93b92606fcacbc1ea3d7a8e02cb20. It was an interesting experiment, but String seems to be worse than Box in every way. --- bytecode/src/heap.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'bytecode/src/heap.rs') diff --git a/bytecode/src/heap.rs b/bytecode/src/heap.rs index d956e2e..970db7d 100644 --- a/bytecode/src/heap.rs +++ b/bytecode/src/heap.rs @@ -1,4 +1,5 @@ use crate::value::Value; +use std::error::Error; pub const NUM_LOCALS: usize = 256; @@ -107,9 +108,9 @@ impl Heap { self.buf.resize(new_size * 2, 0); } - pub fn alloc(&mut self, size: i64) -> Result { + pub fn alloc(&mut self, size: i64) -> Result> { if size <= 0 { - return Err(String::from("alloc of zero size")); + return Err(Box::from("alloc of zero size")); } let usize = usize::try_from(size).expect("32 bits in 2024 LULW"); self.collect_garbage(); @@ -124,16 +125,16 @@ impl Heap { Ok(p) } - pub fn peek(&self, p: usize) -> Result { + pub fn peek(&self, p: usize) -> Result> { if p >= self.buf.len() { - return Err(String::from("peek: out of range")); + return Err(Box::from("peek: out of range")); } Ok(Value(self.buf[p])) } - pub fn poke(&mut self, p: usize, val: Value) -> Result<(), String> { + pub fn poke(&mut self, p: usize, val: Value) -> Result<(), Box> { if p >= self.buf.len() { - return Err(String::from("poke: out of range")); + return Err(Box::from("poke: out of range")); } self.buf[p] = val.repr(); Ok(()) -- cgit v1.3.1