pub struct DragonflyStore { /* private fields */ }Expand description
Redis/DragonflyDB storage implementation.
Implementations§
Source§impl DragonflyStore
impl DragonflyStore
Sourcepub fn with_config(url: &str, config: StoreConfig) -> Result<Self>
pub fn with_config(url: &str, config: StoreConfig) -> Result<Self>
Create a new store with custom configuration.
Sourcepub fn key_prefix(&self) -> &str
pub fn key_prefix(&self) -> &str
Get the key prefix for this store.
Trait Implementations§
Source§impl AdvisoryStore for DragonflyStore
impl AdvisoryStore for DragonflyStore
Source§fn upsert_batch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
advisories: &'life1 [Advisory],
source: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn upsert_batch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
advisories: &'life1 [Advisory],
source: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Insert or update a batch of advisories.
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Advisory>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Advisory>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a single advisory by ID.
Source§fn get_by_package<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ecosystem: &'life1 str,
package: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Advisory>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_by_package<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ecosystem: &'life1 str,
package: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Advisory>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get all advisories affecting a specific package.
Source§fn last_sync<'life0, 'life1, 'async_trait>(
&'life0 self,
source: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn last_sync<'life0, 'life1, 'async_trait>(
&'life0 self,
source: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get the timestamp of the last sync for a source.
Source§fn health_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<HealthStatus>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn health_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<HealthStatus>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Check the health of the store connection.
Source§fn get_by_package_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ecosystem: &'life1 str,
package: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<Advisory>> + Send + '_>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_by_package_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ecosystem: &'life1 str,
package: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<Advisory>> + Send + '_>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get advisories as a stream for memory-efficient processing.
Source§fn get_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<Advisory>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<Advisory>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get multiple advisories by IDs in a batch.
Source§fn store_enrichment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
cve_id: &'life1 str,
data: &'life2 EnrichmentData,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn store_enrichment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
cve_id: &'life1 str,
data: &'life2 EnrichmentData,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Store enrichment data (EPSS/KEV) for a CVE.
Source§fn get_enrichment<'life0, 'life1, 'async_trait>(
&'life0 self,
cve_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<EnrichmentData>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_enrichment<'life0, 'life1, 'async_trait>(
&'life0 self,
cve_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<EnrichmentData>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get enrichment data for a CVE.
Source§fn get_enrichment_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
cve_ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<(String, EnrichmentData)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_enrichment_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
cve_ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<(String, EnrichmentData)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get enrichment data for multiple CVEs.
Source§fn update_sync_timestamp<'life0, 'life1, 'async_trait>(
&'life0 self,
source: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_sync_timestamp<'life0, 'life1, 'async_trait>(
&'life0 self,
source: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update the last sync timestamp for a source.
Source§fn reset_sync_timestamp<'life0, 'life1, 'async_trait>(
&'life0 self,
source: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn reset_sync_timestamp<'life0, 'life1, 'async_trait>(
&'life0 self,
source: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Reset (delete) the sync timestamp for a source, forcing a full re-sync.
Source§fn advisory_count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn advisory_count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get the count of stored advisories.
Source§fn store_ossindex_cache<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
purl: &'life1 str,
cache: &'life2 OssIndexCache,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn store_ossindex_cache<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
purl: &'life1 str,
cache: &'life2 OssIndexCache,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Store an OSS Index component report in cache. Read more
Source§fn get_ossindex_cache<'life0, 'life1, 'async_trait>(
&'life0 self,
purl: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<OssIndexCache>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_ossindex_cache<'life0, 'life1, 'async_trait>(
&'life0 self,
purl: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<OssIndexCache>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a cached OSS Index component report. Read more
Auto Trait Implementations§
impl Freeze for DragonflyStore
impl RefUnwindSafe for DragonflyStore
impl Send for DragonflyStore
impl Sync for DragonflyStore
impl Unpin for DragonflyStore
impl UnwindSafe for DragonflyStore
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