locutus_stdlib/
lib.rs

1//! Standard library provided by the Freenet project to be able to write Locutus-compatible contracts.
2#[cfg(all(
3    feature = "net",
4    any(
5        all(
6            target_arch = "wasm32",
7            target_vendor = "unknown",
8            target_os = "unknown"
9        ),
10        target_family = "unix"
11    )
12))]
13pub mod api;
14pub mod buf;
15mod component_interface;
16pub mod contract_interface;
17mod versioning;
18#[cfg(feature = "xz2")]
19pub mod web;
20
21/// Locutus stdlib prelude.
22pub mod prelude {
23    pub use super::WasmLinearMem;
24    pub use crate::component_interface::wasm_interface::*;
25    pub use crate::component_interface::*;
26    pub use crate::contract_interface::wasm_interface::*;
27    pub use crate::contract_interface::*;
28    pub use crate::versioning::*;
29    pub use locutus_macros::{component, contract};
30
31    pub use bincode;
32    pub use blake2;
33    pub use semver::Version;
34    pub use tracing;
35    pub use tracing_subscriber;
36}
37
38#[doc(hidden)]
39#[derive(Debug, Clone, Copy)]
40pub struct WasmLinearMem {
41    pub start_ptr: *const u8,
42    pub size: u64,
43}