Skip to main content

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;
6pub mod delegate_host;
7mod delegate_interface;
8pub(crate) mod global;
9pub mod memory;
10mod parameters;
11mod versioning;
12
13pub use contract_interface::encoding as typed_contract;
14
15#[allow(dead_code, unused_imports, clippy::all, mismatched_lifetime_syntaxes)]
16pub(crate) mod generated {
17    mod client_request_generated;
18    pub(crate) use client_request_generated::*;
19    pub(crate) mod common_generated;
20    pub(crate) use common_generated::*;
21    mod host_response_generated;
22    pub(crate) use host_response_generated::*;
23}
24
25pub(crate) mod common_generated {
26    pub use super::generated::common_generated::*;
27}
28
29pub mod client_api;
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_host::{error_codes, DelegateCtx};
42    pub use crate::delegate_interface::wasm_interface::DelegateInterfaceResult;
43    pub use crate::delegate_interface::*;
44    pub use crate::parameters::*;
45    pub use crate::typed_contract::{
46        BincodeEncoder, Encoder, EncodingAdapter, JsonEncoder, RelatedContractsContainer,
47    };
48    pub use crate::versioning::*;
49    pub use freenet_macros::{contract, delegate};
50
51    pub use bincode;
52    pub use blake3;
53    pub use serde_json;
54    pub use tracing;
55    pub use tracing_subscriber;
56}