1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use crate::ast;
use crate::compiler::{Compiler, Needs};
use crate::error::CompileResult;
use crate::traits::{Compile, Resolve as _};
use runestick::Inst;
impl Compile<(&ast::LitByteStr, Needs)> for Compiler<'_, '_> {
fn compile(&mut self, (lit_byte_str, needs): (&ast::LitByteStr, Needs)) -> CompileResult<()> {
let span = lit_byte_str.span();
log::trace!("LitByteStr => {:?}", self.source.source(span)?);
if !needs.value() {
self.warnings.not_used(span, self.context());
return Ok(());
}
let bytes = lit_byte_str.resolve(self.source)?;
let slot = self.unit.borrow_mut().new_static_bytes(&*bytes)?;
self.asm.push(Inst::Bytes { slot }, span);
Ok(())
}
}