/* * Copyright 2018 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. */ //! Rust backend SDK for writing applications for Fluence. This crate is just a wrapper for two //! other crates: `main` and `macro`. The `main` crate is used for all memory relative operations //! and logging, while the `macro` crate contains the invocation macro to simplify entry point //! functions. //! //! By default this crate turns on export-allocator feature of the `main` crate, to disable it //! please import this crate with `default-features = false`. //! #![doc(html_root_url = "https://docs.rs/fluence/0.1.11")] #![feature(allocator_api)] #![deny( dead_code, nonstandard_style, unused_imports, unused_mut, unused_variables, unused_unsafe, unreachable_patterns )] #![warn(rust_2018_idioms)] extern crate fluence_sdk_macro; extern crate fluence_sdk_main; /// A module which should be typically globally imported: /// /// ``` /// use fluence::sdk::*; /// ``` pub mod sdk { // TODO: need to introduce macros to avoid code duplication with crates/main/lib.rs pub use fluence_sdk_main::memory; #[cfg(feature = "wasm_logger")] pub use fluence_sdk_main::logger; #[cfg(feature = "export_allocator")] pub use fluence_sdk_main::export_allocator; pub use fluence_sdk_macro::invocation_handler; }