freenet_stdlib/
lib.rs

1//! Standard library provided by the Freenet project to be able to write Locutus-compatible contracts.
2mod code_hash;
3#[cfg(feature = "unstable")]
4pub mod contract_composition;
5mod contract_interface;
6mod delegate_interface;
7pub(crate) mod global;
8pub mod memory;
9mod parameters;
10mod versioning;
11
12pub use contract_interface::encoding as typed_contract;
13
14#[allow(dead_code, unused_imports, clippy::all)]
15pub(crate) mod generated {
16    mod client_request_generated;
17    pub(crate) use client_request_generated::*;
18    pub(crate) mod common_generated;
19    pub(crate) use common_generated::*;
20    mod host_response_generated;
21    pub(crate) use host_response_generated::*;
22}
23
24pub(crate) mod common_generated {
25    pub use super::generated::common_generated::*;
26}
27
28pub mod client_api;
29#[cfg(feature = "contract")]
30pub mod log;
31#[cfg(feature = "contract")]
32pub mod rand;
33#[cfg(feature = "contract")]
34pub mod time;
35
36/// Locutus stdlib prelude.
37pub mod prelude {
38    pub use crate::code_hash::*;
39    pub use crate::contract_interface::wasm_interface::ContractInterfaceResult;
40    pub use crate::contract_interface::*;
41    pub use crate::delegate_interface::wasm_interface::DelegateInterfaceResult;
42    pub use crate::delegate_interface::*;
43    pub use crate::parameters::*;
44    pub use crate::typed_contract::{
45        BincodeEncoder, Encoder, EncodingAdapter, JsonEncoder, RelatedContractsContainer,
46    };
47    pub use crate::versioning::*;
48    pub use freenet_macros::{contract, delegate};
49
50    pub use bincode;
51    pub use blake3;
52    pub use serde_json;
53    pub use tracing;
54    pub use tracing_subscriber;
55}