feat(tvix/value): introduce string representation with &'static str
For cases where the strings are statically known (such as the oft-occuring name/value), this can be a useful optimisation. It's also much more convenient in tests. Change-Id: Ie462b684805bd4986ea5e85ca4bff663bc2d3c3c Reviewed-on: https://cl.tvl.fyi/c/depot/+/6111 Tested-by: BuildkiteCI Reviewed-by: eta <tvl@eta.st>
This commit is contained in:
parent
c7ba2dec04
commit
6dc9ca5723
4 changed files with 44 additions and 26 deletions
|
|
@ -7,7 +7,7 @@ use crate::{
|
|||
chunk::Chunk,
|
||||
errors::{Error, EvalResult},
|
||||
opcode::OpCode,
|
||||
value::{NixAttrs, NixList, NixString, Value},
|
||||
value::{NixAttrs, NixList, Value},
|
||||
};
|
||||
|
||||
pub struct VM {
|
||||
|
|
@ -159,10 +159,10 @@ impl VM {
|
|||
let mut out = String::new();
|
||||
|
||||
for _ in 0..count {
|
||||
out.push_str(&self.pop().as_string()?.0);
|
||||
out.push_str(&self.pop().as_string()?.as_str());
|
||||
}
|
||||
|
||||
self.push(Value::String(NixString(out)));
|
||||
self.push(Value::String(out.into()));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue