mod dir; pub use dir::*; mod s3; pub use s3::*; pub mod misc; use chrono::{DateTime, Utc}; use tokio_stream::wrappers::ReceiverStream; /// A read-only set of [Item]s. pub trait DataSource { /// Get an item from this datasource fn get( &self, key: &str, ) -> impl Future, std::io::Error>> + Send; /// Iterate over all items in this source in an arbitrary order fn iter(&self) -> ReceiverStream>; /// Return the time of the latest change to the data in this source fn latest_change( &self, ) -> impl Future>, std::io::Error>> + Send; }