mirror of
https://github.com/status-im/evmc.git
synced 2025-02-24 00:48:09 +00:00
rust: pass output as reference in ExecutionResult
This commit is contained in:
parent
32ceee35dd
commit
87ad703e62
@ -51,12 +51,16 @@ impl ExecutionResult {
|
|||||||
pub fn new(
|
pub fn new(
|
||||||
_status_code: ffi::evmc_status_code,
|
_status_code: ffi::evmc_status_code,
|
||||||
_gas_left: i64,
|
_gas_left: i64,
|
||||||
_output: Option<Vec<u8>>,
|
_output: Option<&Vec<u8>>,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
ExecutionResult {
|
ExecutionResult {
|
||||||
status_code: _status_code,
|
status_code: _status_code,
|
||||||
gas_left: _gas_left,
|
gas_left: _gas_left,
|
||||||
output: _output,
|
output: if _output.is_some() {
|
||||||
|
Some(_output.unwrap().clone())
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
},
|
||||||
create_address: None,
|
create_address: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -65,7 +69,7 @@ impl ExecutionResult {
|
|||||||
ExecutionResult::new(ffi::evmc_status_code::EVMC_FAILURE, 0, None)
|
ExecutionResult::new(ffi::evmc_status_code::EVMC_FAILURE, 0, None)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn success(_gas_left: i64, _output: Option<Vec<u8>>) -> Self {
|
pub fn success(_gas_left: i64, _output: Option<&Vec<u8>>) -> Self {
|
||||||
ExecutionResult::new(ffi::evmc_status_code::EVMC_SUCCESS, _gas_left, _output)
|
ExecutionResult::new(ffi::evmc_status_code::EVMC_SUCCESS, _gas_left, _output)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,7 +486,7 @@ mod tests {
|
|||||||
let r = ExecutionResult::new(
|
let r = ExecutionResult::new(
|
||||||
ffi::evmc_status_code::EVMC_FAILURE,
|
ffi::evmc_status_code::EVMC_FAILURE,
|
||||||
420,
|
420,
|
||||||
Some(vec![0xc0, 0xff, 0xee, 0x71, 0x75]),
|
Some(&vec![0xc0, 0xff, 0xee, 0x71, 0x75]),
|
||||||
);
|
);
|
||||||
|
|
||||||
let f: *const ffi::evmc_result = r.into();
|
let f: *const ffi::evmc_result = r.into();
|
||||||
@ -526,7 +530,7 @@ mod tests {
|
|||||||
let r = ExecutionResult::new(
|
let r = ExecutionResult::new(
|
||||||
ffi::evmc_status_code::EVMC_FAILURE,
|
ffi::evmc_status_code::EVMC_FAILURE,
|
||||||
420,
|
420,
|
||||||
Some(vec![0xc0, 0xff, 0xee, 0x71, 0x75]),
|
Some(&vec![0xc0, 0xff, 0xee, 0x71, 0x75]),
|
||||||
);
|
);
|
||||||
|
|
||||||
let f: ffi::evmc_result = r.into();
|
let f: ffi::evmc_result = r.into();
|
||||||
|
@ -20,7 +20,7 @@ impl EvmcVm for ExampleRustVM {
|
|||||||
if is_create {
|
if is_create {
|
||||||
ExecutionResult::failure()
|
ExecutionResult::failure()
|
||||||
} else {
|
} else {
|
||||||
ExecutionResult::success(66, Some(vec![0xc0, 0xff, 0xee]))
|
ExecutionResult::success(66, Some(&vec![0xc0, 0xff, 0xee]))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user