cbbeb66b5b
* added cargo config file to explicitly specify build target * wip * Config option to disable topology refreshing * extracted common parsing code * helper trait for working on wasm topology * wasm topology parsing * restored (slightly modified) old js-example * wip * Moved message preparation into a trait * wip * long-winded way of sending test packet * standalone NymNodeTester * finishing the test upon receiving all packets even if timeout wasnt reached * initial round of cleanup * sending multiple test packets in normal NymClient * javascript-side cleanup * starting mixnode test on btn click * Improved NymNodeTester constructors * improved error handling and constructors * tester utils error handling * further cleanup + using BTreeMap for NymTopology mixnodes * handling missed errors * splitting up 'test_node' * split up and cleaned up generation of test result * clippy + fixed example * post rebase fixes * another broken test * prevent running multiple parallel tests * cargo fmt * Added nym- prefix to node tester utils
34 lines
756 B
Rust
34 lines
756 B
Rust
use crate::TaskClient;
|
|
use std::future::Future;
|
|
|
|
#[cfg(target_arch = "wasm32")]
|
|
pub fn spawn<F>(future: F)
|
|
where
|
|
F: Future<Output = ()> + 'static,
|
|
{
|
|
wasm_bindgen_futures::spawn_local(future);
|
|
}
|
|
|
|
#[cfg(not(target_arch = "wasm32"))]
|
|
pub fn spawn<F>(future: F)
|
|
where
|
|
F: Future + Send + 'static,
|
|
F::Output: Send + 'static,
|
|
{
|
|
tokio::spawn(future);
|
|
}
|
|
|
|
pub fn spawn_with_report_error<F, T, E>(future: F, mut shutdown: TaskClient)
|
|
where
|
|
F: Future<Output = Result<T, E>> + Send + 'static,
|
|
T: 'static,
|
|
E: std::error::Error + Send + Sync + 'static,
|
|
{
|
|
let future_that_sends = async move {
|
|
if let Err(err) = future.await {
|
|
shutdown.send_we_stopped(Box::new(err));
|
|
}
|
|
};
|
|
spawn(future_that_sends);
|
|
}
|