fluentbase_runtime/syscall_handler/host/
write_output.rs1use crate::RuntimeContext;
3use rwasm::{StoreTr, TrapCode, Value};
4
5pub fn syscall_write_output_handler(
7 caller: &mut impl StoreTr<RuntimeContext>,
8 params: &[Value],
9 _result: &mut [Value],
10) -> Result<(), TrapCode> {
11 let (offset, length) = (params[0].i32().unwrap(), params[1].i32().unwrap());
12 let data = caller.memory_read_into_vec(offset as usize, length as usize)?;
13 syscall_write_output_impl(caller.data_mut(), &data);
14 Ok(())
15}
16
17pub fn syscall_write_output_impl(ctx: &mut RuntimeContext, data: &[u8]) {
18 ctx.execution_result.output.extend_from_slice(data);
19}