#![recursion_limit = "1024"]
#![cfg_attr(
not(test),
deny(
clippy::todo,
clippy::dbg_macro,
clippy::indexing_slicing,
clippy::get_unwrap
)
)]
#![cfg_attr(
doc,
deny(rustdoc::all),
allow(
// We build with `--document-private-items` on both docs.rs and our
// vendored docs.
rustdoc::private_intra_doc_links,
// See module `doctest_private` below.
rustdoc::private_doc_tests,
rustdoc::missing_crate_level_docs
)
)]
cfg_if::cfg_if! {
if #[cfg(feature = "rustalloc")] {
} else if #[cfg(feature = "jemalloc")] {
use crate::cli_shared::tikv_jemallocator::Jemalloc;
#[global_allocator]
static GLOBAL: Jemalloc = Jemalloc;
} else if #[cfg(feature = "system-alloc")] {
use std::alloc::System;
#[global_allocator]
static GLOBAL: System = System;
}
}
mod auth;
mod beacon;
mod blocks;
mod chain;
mod chain_sync;
mod cid_collections;
mod cli;
mod cli_shared;
mod daemon;
mod db;
mod dev;
mod documentation;
mod eth;
mod f3;
mod fil_cns;
mod genesis;
mod health;
mod interpreter;
mod ipld;
mod key_management;
mod libp2p;
mod libp2p_bitswap;
mod lotus_json;
mod message;
mod message_pool;
mod metrics;
mod networks;
mod rpc;
mod shim;
mod state_manager;
mod state_migration;
mod statediff;
#[cfg(any(test, doc))]
mod test_utils;
mod tool;
mod utils;
mod wallet;
#[cfg(feature = "doctest-private")]
#[doc(hidden)]
pub mod doctest_private {
pub use crate::{
blocks::{CachingBlockHeader, Ticket, TipsetKey},
cli::humantoken::{TokenAmountPretty, parse},
shim::{
address::Address, crypto::Signature, econ::TokenAmount, error::ExitCode,
randomness::Randomness, sector::RegisteredSealProof, state_tree::ActorState,
version::NetworkVersion,
},
utils::io::progress_log::WithProgress,
utils::net::{DownloadFileOption, download_to},
utils::{encoding::blake2b_256, encoding::keccak_256, io::read_toml},
};
}
#[cfg(feature = "benchmark-private")]
#[doc(hidden)]
pub mod benchmark_private;
#[cfg(feature = "interop-tests-private")]
#[doc(hidden)]
pub mod interop_tests_private {
pub mod libp2p {
pub use crate::libp2p::*;
}
pub mod libp2p_bitswap {
pub use crate::libp2p_bitswap::*;
}
pub mod beacon {
pub use crate::beacon::BeaconEntry;
}
}
pub use auth::{JWT_IDENTIFIER, verify_token};
pub use cli::main::main as forest_main;
pub use cli_shared::cli::{Client, Config};
pub use daemon::main::main as forestd_main;
pub use dev::main::main as forest_dev_main;
pub use key_management::{
ENCRYPTED_KEYSTORE_NAME, FOREST_KEYSTORE_PHRASE_ENV, KEYSTORE_NAME, KeyStore, KeyStoreConfig,
};
pub use tool::main::main as forest_tool_main;
pub use wallet::main::main as forest_wallet_main;