pub struct RealCatalogLoader { /* private fields */ }Expand description
Production implementation of CatalogLoader that fetches from the network.
This loader uses the standard caching mechanism:
- Check for a valid cached catalog
- If cache is missing or expired, fetch from the API
- Cache the fetched result for future use
Implementations§
Source§impl RealCatalogLoader
impl RealCatalogLoader
Sourcepub fn new(fetcher: Arc<dyn CatalogHttpClient>) -> Self
pub fn new(fetcher: Arc<dyn CatalogHttpClient>) -> Self
Create a new catalog loader with the given HTTP client.
Sourcepub fn with_fetcher<F>(fetcher: F) -> Selfwhere
F: CatalogHttpClient + 'static,
pub fn with_fetcher<F>(fetcher: F) -> Selfwhere
F: CatalogHttpClient + 'static,
Convenience constructor that wraps the client in an Arc.
Trait Implementations§
Source§impl CatalogLoader for RealCatalogLoader
impl CatalogLoader for RealCatalogLoader
Source§fn load(&self) -> Result<ApiCatalog, CacheError>
fn load(&self) -> Result<ApiCatalog, CacheError>
Load the API catalog. Read more
Source§impl Clone for RealCatalogLoader
impl Clone for RealCatalogLoader
Source§fn clone(&self) -> RealCatalogLoader
fn clone(&self) -> RealCatalogLoader
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for RealCatalogLoader
impl !RefUnwindSafe for RealCatalogLoader
impl Send for RealCatalogLoader
impl Sync for RealCatalogLoader
impl Unpin for RealCatalogLoader
impl UnsafeUnpin for RealCatalogLoader
impl !UnwindSafe for RealCatalogLoader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more