snarkos_node_bft_ledger_service/
lib.rs1#![forbid(unsafe_code)]
17
18#[macro_use]
19extern crate async_trait;
20
21#[cfg(feature = "ledger")]
22pub mod ledger;
23#[cfg(feature = "ledger")]
24pub use ledger::*;
25
26#[cfg(feature = "mock")]
27pub mod mock;
28#[cfg(feature = "mock")]
29pub use mock::*;
30
31#[cfg(feature = "prover")]
32pub mod prover;
33#[cfg(feature = "prover")]
34pub use prover::*;
35
36#[cfg(feature = "translucent")]
37pub mod translucent;
38#[cfg(feature = "translucent")]
39pub use translucent::*;
40
41pub mod traits;
42pub use traits::*;
43
44pub fn fmt_id(id: impl ToString) -> String {
46 let id = id.to_string();
47 let mut formatted_id = id.chars().take(16).collect::<String>();
48 if id.chars().count() > 16 {
49 formatted_id.push_str("..");
50 }
51 formatted_id
52}
53
54#[macro_export]
56macro_rules! spawn_blocking {
57 ($expr:expr) => {
58 match tokio::task::spawn_blocking(move || $expr).await {
59 Ok(value) => value,
60 Err(error) => Err(snarkvm::prelude::anyhow!("[tokio::spawn_blocking] {error}")),
61 }
62 };
63}