1use random_access_storage::RandomAccess;
2use std::fmt::Debug;
3
4mod common;
5#[cfg(feature = "hypercore-feed")]
6mod hypercore;
7
8pub(crate) use common::{get_feed, get_feed_discovery_keys, insert_feed, remove_feed};
9pub(crate) use common::{FeedMap, SHUTDOWN_SIGNAL_NAME};
10
11pub use ::hypercore_protocol::{Protocol as FeedProtocol, ProtocolBuilder};
12#[cfg(not(target_arch = "wasm32"))]
13pub(crate) use hypercore::{
14 create_new_read_disk_hypercore as create_new_read_disk_feed,
15 create_new_write_disk_hypercore as create_new_write_disk_feed, get_path_from_discovery_key,
16 open_disk_hypercore as open_disk_feed,
17};
18pub(crate) use hypercore::{
19 create_new_read_memory_hypercore as create_new_read_memory_feed,
20 create_new_write_memory_hypercore as create_new_write_memory_feed,
21};
22pub(crate) use hypercore::{on_protocol, HypercoreWrapper as Feed};
23#[cfg(not(target_arch = "wasm32"))]
24pub use random_access_disk::RandomAccessDisk as FeedDiskPersistence;
25pub use random_access_memory::RandomAccessMemory as FeedMemoryPersistence;
26
27pub trait FeedPersistence: RandomAccess + Debug + Send + 'static {}
29
30impl<T> FeedPersistence for T where T: RandomAccess + Debug + Send + 'static {}
31
32