From a04f4ce4ba365749c059c5b28bb1e62c2e31de75 Mon Sep 17 00:00:00 2001 From: vms Date: Fri, 19 Feb 2021 17:14:50 +0300 Subject: [PATCH] add MountedBinaryResult --- crates/main/src/lib.rs | 3 ++ crates/main/src/mounted_binary_result.rs | 37 ++++++++++++++++++++++++ src/lib.rs | 2 ++ 3 files changed, 42 insertions(+) create mode 100644 crates/main/src/mounted_binary_result.rs diff --git a/crates/main/src/lib.rs b/crates/main/src/lib.rs index 3fec6be..809e52b 100644 --- a/crates/main/src/lib.rs +++ b/crates/main/src/lib.rs @@ -35,6 +35,7 @@ mod call_parameters; mod export_allocator; #[cfg(any(feature = "debug", feature = "logger"))] mod logger; +mod mounted_binary_result; mod result; pub use call_parameters::CallParameters; @@ -52,6 +53,8 @@ pub use logger::TargetMap; #[cfg(feature = "logger")] pub use logger::WASM_LOG_ENV_NAME; +pub use mounted_binary_result::MountedBinaryResult; + pub use result::get_result_ptr; pub use result::get_result_size; pub use result::set_result_ptr; diff --git a/crates/main/src/mounted_binary_result.rs b/crates/main/src/mounted_binary_result.rs new file mode 100644 index 0000000..19e73ec --- /dev/null +++ b/crates/main/src/mounted_binary_result.rs @@ -0,0 +1,37 @@ +/* + * Copyright 2020 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +use fluence_sdk_macro::fce; + +use serde::Serialize; +use serde::Deserialize; + +pub const SUCCESS_CODE: i32 = 0; + +/// Describes result of calling a CLI service. +#[fce] +#[derive(Clone, PartialEq, Default, Eq, Debug, Serialize, Deserialize)] +pub struct MountedBinaryResult { + /// Return code, where SUCCESS_CODE means succes. + pub ret_code: i32, + + /// Contains error message if ret_code != SUCCESS_CODE. + pub error_message: String, + + /// Contains an output of a CLI service. Note that it could be non-empty even if + /// there was an error. + pub result: String, +} diff --git a/src/lib.rs b/src/lib.rs index 28d5b4d..ea95e59 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -79,6 +79,8 @@ pub use fluence_sdk_main::WasmLoggerBuilder; #[cfg(feature = "logger")] pub use fluence_sdk_main::TargetMap; +pub use fluence_sdk_main::MountedBinaryResult; + /// These API functions are intended for internal usage in generated code. /// Normally, you shouldn't use them. pub mod internal {