infinitree_backends/
lib.rs1#![forbid(unsafe_code)]
5#![deny(
6 arithmetic_overflow,
7 future_incompatible,
8 nonstandard_style,
9 rust_2018_idioms,
10 trivial_casts,
11 unused_crate_dependencies,
12 unused_lifetimes,
13 unused_qualifications,
14 rustdoc::bare_urls,
15 rustdoc::broken_intra_doc_links,
16 rustdoc::invalid_codeblock_attributes,
17 rustdoc::invalid_rust_codeblocks,
18 rustdoc::private_intra_doc_links
19)]
20#![deny(clippy::all)]
21
22#[macro_use]
23extern crate serde_derive;
24
25mod cache;
26pub use cache::*;
27
28mod s3;
29pub use s3::*;
30
31use std::future::Future;
32use tokio::{runtime, task};
33
34pub(crate) fn block_on<O>(fut: impl Future<Output = O>) -> O {
35 task::block_in_place(move || runtime::Handle::current().block_on(fut))
36}
37
38#[cfg(test)]
39mod test {
40 use infinitree::{backends::Backend, object::WriteObject};
41
42 pub(crate) const TEST_DATA_DIR: &str = "../test_data";
43
44 pub(crate) fn write_and_wait_for_commit(backend: &impl Backend, object: &WriteObject) {
45 backend.write_object(object).unwrap();
46 backend.sync().unwrap();
47 }
48}