Remove unsafe from import funcs (#75)

This commit is contained in:
vms
2021-04-19 13:34:05 +03:00
committed by GitHub
parent 820e292f15
commit c702311595
29 changed files with 88 additions and 89 deletions

View File

@ -11,32 +11,32 @@ jobs:
- checkout
- restore_cache:
keys:
- fce05-{{ checksum "Cargo.lock" }}
- fce04-{{ checksum "Cargo.lock" }}
- run: |
rustup toolchain install nightly-2021-02-27
rustup default nightly-2021-02-27
rustup override set nightly-2021-02-27
rustup toolchain install nightly-2021-03-24
rustup default nightly-2021-03-24
rustup override set nightly-2021-03-24
rustup component add rustfmt --toolchain nightly-2021-02-27
rustup component add clippy --toolchain nightly-2021-02-27
rustup component add rustfmt --toolchain nightly-2021-03-24
rustup component add clippy --toolchain nightly-2021-03-24
rustup target add wasm32-wasi
cargo install --path tools/cli
cargo fmt --all -- --check --color always
cargo check -v --all-features
cargo check -v --all-features -p fce -p fluence-faas -p fluence-app-service -p aquamarine-vm -p fcli -p frepl
(cd ./examples; ./build.sh)
(cd ./fluence-faas/tests/wasm_tests; ./build.sh)
cargo test --release -v --all-features
cargo clippy -v
cargo test --release -v --all-features -p fce -p fluence-faas -p fluence-app-service -p aquamarine-vm -p fcli -p frepl
cargo clippy -v -p fce -p fluence-faas -p fluence-app-service -p aquamarine-vm -p fcli -p frepl
- save_cache:
paths:
- ~/.cargo
- ~/.rustup
key: fce05-{{ checksum "Cargo.lock" }}
key: fce04-{{ checksum "Cargo.lock" }}
workflows:
version: 2.1

28
Cargo.lock generated
View File

@ -730,7 +730,7 @@ dependencies = [
[[package]]
name = "fce-timestamp-macro"
version = "0.6.0"
source = "git+https://github.com/fluencelabs/rust-sdk#339dd4d58a9e7481ad4cc9e73e19a8ebe96b46fe"
source = "git+https://github.com/fluencelabs/rust-sdk#1755202195c1e2a86c962219ac1420664afe3d49"
dependencies = [
"chrono",
"quote",
@ -807,7 +807,7 @@ dependencies = [
[[package]]
name = "fluence"
version = "0.6.0"
source = "git+https://github.com/fluencelabs/rust-sdk#339dd4d58a9e7481ad4cc9e73e19a8ebe96b46fe"
source = "git+https://github.com/fluencelabs/rust-sdk#1755202195c1e2a86c962219ac1420664afe3d49"
dependencies = [
"fce-timestamp-macro",
"fluence-sdk-macro 0.6.0",
@ -879,7 +879,7 @@ dependencies = [
[[package]]
name = "fluence-sdk-macro"
version = "0.6.0"
source = "git+https://github.com/fluencelabs/rust-sdk#339dd4d58a9e7481ad4cc9e73e19a8ebe96b46fe"
source = "git+https://github.com/fluencelabs/rust-sdk#1755202195c1e2a86c962219ac1420664afe3d49"
dependencies = [
"fluence-sdk-wit 0.6.0",
]
@ -898,7 +898,7 @@ dependencies = [
[[package]]
name = "fluence-sdk-main"
version = "0.6.0"
source = "git+https://github.com/fluencelabs/rust-sdk#339dd4d58a9e7481ad4cc9e73e19a8ebe96b46fe"
source = "git+https://github.com/fluencelabs/rust-sdk#1755202195c1e2a86c962219ac1420664afe3d49"
dependencies = [
"fluence-sdk-macro 0.6.0",
"log",
@ -922,7 +922,7 @@ dependencies = [
[[package]]
name = "fluence-sdk-wit"
version = "0.6.0"
source = "git+https://github.com/fluencelabs/rust-sdk#339dd4d58a9e7481ad4cc9e73e19a8ebe96b46fe"
source = "git+https://github.com/fluencelabs/rust-sdk#1755202195c1e2a86c962219ac1420664afe3d49"
dependencies = [
"proc-macro2",
"quote",
@ -1351,9 +1351,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]]
name = "idna"
version = "0.2.2"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21"
checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
dependencies = [
"matches",
"unicode-bidi",
@ -1900,7 +1900,7 @@ dependencies = [
"cfg-if 1.0.0",
"instant",
"libc",
"redox_syscall 0.2.5",
"redox_syscall 0.2.6",
"smallvec",
"winapi 0.3.9",
]
@ -2125,9 +2125,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]]
name = "redox_syscall"
version = "0.2.5"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041"
dependencies = [
"bitflags",
]
@ -2138,7 +2138,7 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f"
dependencies = [
"redox_syscall 0.2.5",
"redox_syscall 0.2.6",
]
[[package]]
@ -2159,7 +2159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
dependencies = [
"getrandom 0.2.2",
"redox_syscall 0.2.5",
"redox_syscall 0.2.6",
]
[[package]]
@ -2594,7 +2594,7 @@ dependencies = [
"cfg-if 1.0.0",
"libc",
"rand",
"redox_syscall 0.2.5",
"redox_syscall 0.2.6",
"remove_dir_all",
"winapi 0.3.9",
]
@ -2627,7 +2627,7 @@ checksum = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e"
dependencies = [
"libc",
"numtoa",
"redox_syscall 0.2.5",
"redox_syscall 0.2.6",
"redox_termios",
]

View File

@ -11,4 +11,3 @@ for dir in ./*; do
(cd "$dir"; ./build.sh)
done

View File

@ -16,6 +16,11 @@
#[cfg(target_arch = "wasm32")]
use fluence::fce;
#[cfg(target_arch = "wasm32")]
use fluence::module_manifest;
#[cfg(target_arch = "wasm32")]
module_manifest!();
pub fn main() {}

View File

@ -54,7 +54,7 @@ pub fn put(file_path: String) -> String {
file_path,
];
let ipfs_result = unsafe { ipfs(cmd) };
let ipfs_result = ipfs(cmd);
ipfs_result
.into_std()
.unwrap()
@ -78,7 +78,7 @@ pub fn get(hash: String) -> String {
hash,
];
unsafe { ipfs(cmd) };
ipfs(cmd);
RESULT_FILE_PATH.to_string()
}

View File

@ -50,14 +50,14 @@ pub fn put(file_content: Vec<u8>) -> String {
return format!("file can't be written: {}", e);
}
unsafe { ipfs_put(rpc_tmp_filepath) }
ipfs_put(rpc_tmp_filepath)
}
#[fce]
pub fn get(hash: String) -> Vec<u8> {
log::info!("get called with hash: {}", hash);
let file_path = unsafe { ipfs_get(hash) };
let file_path = ipfs_get(hash);
fs::read(file_path).unwrap_or_else(|_| b"error while reading file".to_vec())
}

View File

@ -43,7 +43,7 @@ pub fn invoke() -> TestRecord {
field_12: Vec::new(),
};
unsafe { mutate_struct(test_record) }
mutate_struct(test_record)
}
#[fce]

View File

@ -33,7 +33,7 @@ pub fn main() {
pub fn download(url: String) -> String {
log::info!("get called with url {}", url);
let result = unsafe { curl(vec![url]) };
let result = curl(vec![url]);
String::from_utf8(result.stdout).unwrap()
}

View File

@ -29,8 +29,8 @@ pub fn main() {
/// Calls `curl` and stores returned result into a file.
#[fce]
pub fn get_n_save(url: String, file_name: String) -> String {
let result = unsafe { download(url) };
unsafe { file_put(file_name, result.into_bytes()) };
let result = download(url);
file_put(file_name, result.into_bytes());
String::from("Ok")
}

View File

@ -35,8 +35,7 @@ pub fn all_types(
arg_10: String,
arg_11: Vec<u8>,
) -> Vec<u8> {
let mut result = unsafe {
effector::all_types(
let mut result = effector::all_types(
arg_0,
arg_1,
arg_2,
@ -49,8 +48,7 @@ pub fn all_types(
arg_9,
arg_10.clone(),
arg_11.clone(),
)
};
);
result.push(arg_0 as u8);
result.extend(safe_transmute::transmute_one_to_bytes(&arg_1));
@ -83,11 +81,9 @@ pub fn all_ref_types(
arg_10: &String,
arg_11: &Vec<u8>,
) -> Vec<u8> {
let mut result = unsafe {
effector::all_ref_types(
let mut result = effector::all_ref_types(
arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, arg_10, arg_11,
)
};
);
result.push(*arg_0 as u8);
result.extend(safe_transmute::transmute_one_to_bytes(arg_1));
@ -107,28 +103,28 @@ pub fn all_ref_types(
#[fce]
pub fn string_type(arg: String) -> String {
let arg = unsafe { effector::string_type(arg) };
let arg = effector::string_type(arg);
format!("{}_{}", arg, arg)
}
#[fce]
pub fn string_ref_type(arg: &String) -> String {
let arg = unsafe { effector::string_ref_type(arg) };
let arg = effector::string_ref_type(arg);
format!("{}_{}", arg, arg)
}
#[fce]
pub fn str_type(arg: &str) -> String {
let arg = unsafe { effector::str_type(arg) };
let arg = effector::str_type(arg);
format!("{}_{}", arg, arg)
}
#[fce]
pub fn bytearray_type(arg: Vec<u8>) -> Vec<u8> {
let mut arg = unsafe { effector::bytearray_type(arg) };
let mut arg = effector::bytearray_type(arg);
arg.push(1);
arg
@ -136,7 +132,7 @@ pub fn bytearray_type(arg: Vec<u8>) -> Vec<u8> {
#[fce]
pub fn bytearray_ref_type(arg: &Vec<u8>) -> Vec<u8> {
let mut arg = unsafe { effector::bytearray_ref_type(arg) };
let mut arg = effector::bytearray_ref_type(arg);
arg.push(1);
arg
@ -144,89 +140,89 @@ pub fn bytearray_ref_type(arg: &Vec<u8>) -> Vec<u8> {
#[fce]
pub fn bool_type(arg: bool) -> bool {
unsafe { effector::bool_type(arg) }
effector::bool_type(arg)
}
#[fce]
pub fn bool_ref_type(arg: &bool) -> bool {
unsafe { effector::bool_ref_type(arg) }
effector::bool_ref_type(arg)
}
#[fce]
pub fn f32_type(arg: f32) -> f32 {
let arg = unsafe { effector::f32_type(arg) };
let arg = effector::f32_type(arg);
arg + 1.0
}
#[fce]
pub fn f32_ref_type(arg: &f32) -> f32 {
let arg = unsafe { effector::f32_ref_type(arg) };
let arg = effector::f32_ref_type(arg);
arg + 1.0
}
#[fce]
pub fn f64_type(arg: f64) -> f64 {
let arg = unsafe { effector::f64_type(arg) };
let arg = effector::f64_type(arg);
arg + 1.0
}
#[fce]
pub fn f64_ref_type(arg: &f64) -> f64 {
let arg = unsafe { effector::f64_ref_type(arg) };
let arg = effector::f64_ref_type(arg);
arg + 1.0
}
#[fce]
pub fn u32_type(arg: u32) -> u32 {
let arg = unsafe { effector::u32_type(arg) };
let arg = effector::u32_type(arg);
arg + 1
}
#[fce]
pub fn u32_ref_type(arg: &u32) -> u32 {
let arg = unsafe { effector::u32_ref_type(arg) };
let arg = effector::u32_ref_type(arg);
arg + 1
}
#[fce]
pub fn u64_type(arg: u64) -> u64 {
let arg = unsafe { effector::u64_type(arg) };
let arg = effector::u64_type(arg);
arg + 1
}
#[fce]
pub fn u64_ref_type(arg: &u64) -> u64 {
let arg = unsafe { effector::u64_ref_type(arg) };
let arg = effector::u64_ref_type(arg);
arg + 1
}
#[fce]
pub fn i32_type(arg: i32) -> i32 {
let arg = unsafe { effector::i32_type(arg) };
let arg = effector::i32_type(arg);
arg + 1
}
#[fce]
pub fn i32_ref_type(arg: &i32) -> i32 {
let arg = unsafe { effector::i32_ref_type(arg) };
let arg = effector::i32_ref_type(arg);
arg + 1
}
#[fce]
pub fn i64_type(arg: i64) -> i64 {
let arg = unsafe { effector::i64_type(arg) };
let arg = effector::i64_type(arg);
arg + 1
}
#[fce]
pub fn i64_ref_type(arg: &i64) -> i64 {
let arg = unsafe { effector::i64_ref_type(arg) };
let arg = effector::i64_ref_type(arg);
arg + 1
}
#[fce]
pub fn empty_type() -> String {
unsafe { effector::empty_type() }
effector::empty_type()
}
mod effector {

View File

@ -14,6 +14,5 @@ name = "arrays_passing_effector"
path = "src/effector.rs"
[dependencies]
# fluence = { git = "https://github.com/fluencelabs/rust-sdk" }
fluence = { git = "https://github.com/fluencelabs/rust-sdk" }
safe-transmute = "0.11.0"

View File

@ -24,7 +24,7 @@ pub fn main() {}
pub fn byte_type(mut arg: Vec<u8>) -> Vec<u8> {
arg.push(0);
let mut arg = unsafe { effector::byte_type(arg) };
let mut arg = effector::byte_type(arg);
arg.push(2);
arg
@ -34,7 +34,7 @@ pub fn byte_type(mut arg: Vec<u8>) -> Vec<u8> {
pub fn inner_arrays_1(mut arg: Vec<Vec<Vec<Vec<u8>>>>) -> Vec<Vec<Vec<Vec<u8>>>> {
arg.push(vec![vec![vec![0]]]);
let mut arg = unsafe { effector::inner_arrays_1(arg) };
let mut arg = effector::inner_arrays_1(arg);
arg.push(vec![vec![vec![2]]]);
arg
@ -57,7 +57,7 @@ pub fn inner_arrays_2(mut arg: Vec<Vec<Vec<Vec<TestRecord>>>>) -> Vec<Vec<Vec<Ve
TestRecord::default(),
]]]);
let mut arg = unsafe { effector::inner_arrays_2(arg) };
let mut arg = effector::inner_arrays_2(arg);
arg.push(vec![vec![vec![
TestRecord {
@ -74,7 +74,7 @@ pub fn inner_arrays_2(mut arg: Vec<Vec<Vec<Vec<TestRecord>>>>) -> Vec<Vec<Vec<Ve
pub fn string_type(mut arg: Vec<String>) -> Vec<String> {
arg.push(String::from("fce"));
let mut arg = unsafe { effector::string_type(arg) };
let mut arg = effector::string_type(arg);
arg.push(String::from("test"));
arg
@ -83,7 +83,7 @@ pub fn string_type(mut arg: Vec<String>) -> Vec<String> {
/*
#[fce]
pub fn bool_type(arg: Vec<bool>) -> Vec<bool> {
let mut arg = unsafe { effector::bool_type(arg) };
let mut arg = effector::bool_type(arg);
arg.push(false);
arg
@ -94,7 +94,7 @@ pub fn bool_type(arg: Vec<bool>) -> Vec<bool> {
pub fn f32_type(mut arg: Vec<f32>) -> Vec<f32> {
arg.push(0.0);
let mut arg = unsafe { effector::f32_type(arg) };
let mut arg = effector::f32_type(arg);
arg.push(1.0);
arg
@ -104,7 +104,7 @@ pub fn f32_type(mut arg: Vec<f32>) -> Vec<f32> {
pub fn f64_type(mut arg: Vec<f64>) -> Vec<f64> {
arg.push(0.0);
let mut arg = unsafe { effector::f64_type(arg) };
let mut arg = effector::f64_type(arg);
arg.push(1.0);
arg
@ -114,7 +114,7 @@ pub fn f64_type(mut arg: Vec<f64>) -> Vec<f64> {
pub fn u32_type(mut arg: Vec<u32>) -> Vec<u32> {
arg.push(0);
let mut arg = unsafe { effector::u32_type(arg) };
let mut arg = effector::u32_type(arg);
arg.push(2);
arg
@ -124,7 +124,7 @@ pub fn u32_type(mut arg: Vec<u32>) -> Vec<u32> {
pub fn u64_type(mut arg: Vec<u64>) -> Vec<u64> {
arg.push(0);
let mut arg = unsafe { effector::u64_type(arg) };
let mut arg = effector::u64_type(arg);
arg.push(2);
arg
@ -134,7 +134,7 @@ pub fn u64_type(mut arg: Vec<u64>) -> Vec<u64> {
pub fn i32_type(mut arg: Vec<i32>) -> Vec<i32> {
arg.push(0);
let mut arg = unsafe { effector::i32_type(arg) };
let mut arg = effector::i32_type(arg);
arg.push(2);
arg
@ -144,7 +144,7 @@ pub fn i32_type(mut arg: Vec<i32>) -> Vec<i32> {
pub fn i64_type(mut arg: Vec<i64>) -> Vec<i64> {
arg.push(0);
let mut arg = unsafe { effector::i64_type(arg) };
let mut arg = effector::i64_type(arg);
arg.push(1);
arg
@ -152,7 +152,7 @@ pub fn i64_type(mut arg: Vec<i64>) -> Vec<i64> {
#[fce]
pub fn empty_type() -> Vec<String> {
unsafe { effector::empty_type() }
effector::empty_type()
}
mod effector {

View File

@ -44,7 +44,7 @@ fn main() {}
#[fce]
pub fn test_record(test_record: TestRecord2) -> TestRecord2 {
let mut test_record = unsafe { effector::test_record(test_record) };
let mut test_record = effector::test_record(test_record);
test_record.test_record_1 = TestRecord1 {
field_0: 1,
@ -58,7 +58,7 @@ pub fn test_record(test_record: TestRecord2) -> TestRecord2 {
#[fce]
fn test_record_ref(test_record: &TestRecord2) -> TestRecord2 {
let mut test_record = unsafe { effector::test_record_ref(test_record) };
let mut test_record = effector::test_record_ref(test_record);
test_record.test_record_1 = TestRecord1 {
field_0: 1,