1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
#![cfg_attr(not(feature = "std"), no_std)] #![cfg_attr(not(feature = "std"), feature(alloc))] #[cfg(not(feature = "std"))] #[macro_use] extern crate alloc; extern crate swasm; extern crate byteorder; #[macro_use] extern crate log; pub mod rules; mod build; mod optimizer; mod gas; mod symbols; mod ext; mod pack; mod runtime_type; pub mod stack_height; pub use build::{build, SourceTarget, Error as BuildError}; pub use optimizer::{optimize, Error as OptimizerError}; pub use gas::inject_gas_counter; pub use ext::{externalize, externalize_mem, underscore_funcs, ununderscore_funcs, shrink_unknown_stack}; pub use pack::{pack_instance, Error as PackingError}; pub use runtime_type::inject_runtime_type; pub struct TargetRuntime { pub create_symbol: &'static str, pub call_symbol: &'static str, pub return_symbol: &'static str, } impl TargetRuntime { pub fn higgsfield() -> TargetRuntime { TargetRuntime { create_symbol: "deploy", call_symbol: "call", return_symbol: "ext_return", } } pub fn pswasm() -> TargetRuntime { TargetRuntime { create_symbol: "deploy", call_symbol: "call", return_symbol: "ret", } } } #[cfg(not(feature = "std"))] mod std { pub use core::*; pub use alloc::{vec, string, boxed, borrow}; pub mod collections { pub use alloc::collections::{BTreeMap, BTreeSet}; } }