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 mut data = vec![0u8; length as usize];
13 caller.memory_read(offset as usize, &mut data)?;
14 syscall_write_output_impl(caller.data_mut(), &data);
15 Ok(())
16}
17
18pub fn syscall_write_output_impl(ctx: &mut RuntimeContext, data: &[u8]) {
19 ctx.execution_result.output.extend_from_slice(data);
20}