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;
29pub mod log;
30#[cfg(feature = "contract")]
31pub mod rand;
32#[cfg(feature = "contract")]
33pub mod time;
34
35/// Locutus stdlib prelude.
36pub mod prelude {
37    pub use crate::code_hash::*;
38    pub use crate::contract_interface::wasm_interface::ContractInterfaceResult;
39    pub use crate::contract_interface::*;
40    pub use crate::delegate_interface::wasm_interface::DelegateInterfaceResult;
41    pub use crate::delegate_interface::*;
42    pub use crate::parameters::*;
43    pub use crate::typed_contract::{
44        BincodeEncoder, Encoder, EncodingAdapter, JsonEncoder, RelatedContractsContainer,
45    };
46    pub use crate::versioning::*;
47    pub use freenet_macros::{contract, delegate};
48
49    pub use bincode;
50    pub use blake3;
51    pub use serde_json;
52    pub use tracing;
53    pub use tracing_subscriber;
54}