pub struct ProofDB { /* private fields */ }
Expand description
In memory database tracking information from proofs
After population, used for calculating the effective trust set, etc.
Right now, for every invocation of crev, we just load it up with all known proofs, and then query. If it ever becomes too slow, all the logic here will have to be moved to a real embedded db of some kind.
Implementations
sourceimpl ProofDB
impl ProofDB
pub fn new() -> Self
pub fn get_pkg_alternatives<'s, 'a>(
&'s self,
pkg_id: &'a PackageId
) -> HashSet<(Id, PackageId)>
pub fn get_pkg_flags<'s, 'a>(
&'s self,
pkg_id: &'a PackageId
) -> impl Iterator<Item = (&'_ Id, &'s Flags)>
pub fn get_pkg_reviews_for_source<'a, 'b>(
&'a self,
source: &'b str
) -> impl Iterator<Item = &'a Package>
pub fn get_pkg_reviews_for_name<'a, 'b, 'c: 'a>(
&'a self,
source: &'b str,
name: &'c str
) -> impl Iterator<Item = &'a Package>
pub fn get_pkg_reviews_for_version<'a, 'b, 'c: 'a, 'd: 'a>(
&'a self,
source: &'b str,
name: &'c str,
version: &'d Version
) -> impl Iterator<Item = &'a Package>
pub fn get_pkg_reviews_gte_version<'a, 'b, 'c: 'a, 'd: 'a>(
&'a self,
source: &'b str,
name: &'c str,
version: &'d Version
) -> impl Iterator<Item = &'a Package>
pub fn get_pkg_reviews_lte_version<'a, 'b, 'c: 'a, 'd: 'a>(
&'a self,
source: &'b str,
name: &'c str,
version: &'d Version
) -> impl Iterator<Item = &'a Package>
pub fn get_pkg_review_by_pkg_review_id(
&self,
uniq: &PkgVersionReviewId
) -> Option<&Package>
pub fn get_pkg_review<'a, 'b, 'c: 'a, 'd: 'a>(
&'a self,
source: &'b str,
name: &'c str,
version: &'d Version,
id: &Id
) -> Option<&'_ Package>
pub fn get_advisories<'a, 'b, 'c: 'a, 'd: 'a>(
&'a self,
source: &'b str,
name: Option<&'c str>,
version: Option<&'d Version>
) -> impl Iterator<Item = &'a Package> + 'a
pub fn get_pkg_reviews_with_issues_for<'a, 'b, 'c: 'a, 'd: 'a>(
&'a self,
source: &'b str,
name: Option<&'c str>,
version: Option<&'c Version>,
trust_set: &'d TrustSet,
trust_level_required: TrustLevel
) -> impl Iterator<Item = &'_ Package>
pub fn get_advisories_for_version<'a, 'b, 'c: 'a, 'd: 'a>(
&'a self,
source: &'b str,
name: &'c str,
version: &'d Version
) -> impl Iterator<Item = &'_ Package>
pub fn get_advisories_for_package<'a, 'b, 'c: 'a>(
&'a self,
source: &'b str,
name: &'c str
) -> impl Iterator<Item = &'_ Package>
pub fn get_advisories_for_source(
&self,
source: &str
) -> impl Iterator<Item = &Package>
sourcepub fn get_open_issues_for_version(
&self,
source: &str,
name: &str,
queried_version: &Version,
trust_set: &TrustSet,
trust_level_required: TrustLevel
) -> HashMap<String, IssueDetails>
pub fn get_open_issues_for_version(
&self,
source: &str,
name: &str,
queried_version: &Version,
trust_set: &TrustSet,
trust_level_required: TrustLevel
) -> HashMap<String, IssueDetails>
Get all issues affecting a given package version
Collect a map of Issue ID -> IssueReports
, listing
all issues known to affect a given package version.
These are calculated from advisories
and issues
fields
of the package reviews of reviewers intside a given trust_set
of at least given trust_level_required
.
pub fn get_pkg_reviews_with_issues_for_version<'a, 'b, 'c: 'a>(
&'a self,
source: &'b str,
name: &'c str,
queried_version: &'c Version,
trust_set: &'c TrustSet,
trust_level_required: TrustLevel
) -> impl Iterator<Item = &'_ Package>
pub fn get_pkg_reviews_with_issues_for_name<'a, 'b, 'c: 'a>(
&'a self,
source: &'b str,
name: &'c str,
trust_set: &'c TrustSet,
trust_level_required: TrustLevel
) -> impl Iterator<Item = &'_ Package>
pub fn get_pkg_reviews_with_issues_for_source<'a, 'b, 'c: 'a>(
&'a self,
source: &'b str,
trust_set: &'c TrustSet,
trust_level_required: TrustLevel
) -> impl Iterator<Item = &'_ Package>
pub fn unique_package_review_proof_count(&self) -> usize
pub fn unique_trust_proof_count(&self) -> usize
pub fn get_package_review_count(
&self,
source: &str,
name: Option<&str>,
version: Option<&Version>
) -> usize
pub fn get_package_reviews_for_package<'a, 'b, 'c: 'a, 'd: 'a>(
&'a self,
source: &'b str,
name: Option<&'c str>,
version: Option<&'d Version>
) -> impl Iterator<Item = &'a Package> + 'a
pub fn get_package_reviews_for_package_sorted<'a, 'b, 'c: 'a, 'd: 'a>(
&'a self,
source: &'b str,
name: Option<&'c str>,
version: Option<&'d Version>
) -> Vec<Package>
pub fn all_known_ids(&self) -> BTreeSet<Id>
pub fn get_reverse_trust_for<'id, 's: 'id>(
&'s self,
id: &'id Id
) -> impl Iterator<Item = (&'id Id, TrustLevel)> + 's
Get all Ids that authored a proof (with total count)
pub fn get_package_review_by_signature<'a>(
&'a self,
signature: &str
) -> Option<&'a Package>
pub fn get_package_reviews_by_digest<'a>(
&'a self,
digest: &Digest
) -> impl Iterator<Item = Package> + 'a
pub fn record_tusted_url_from_own_id(&mut self, own_id: &PublicId)
pub fn import_from_iter(&mut self, i: impl Iterator<Item = (Proof, FetchSource)>)
pub fn get_trust_proof_between(&self, from: &Id, to: &Id) -> Option<&Trust>
pub fn calculate_trust_set(
&self,
for_id: &Id,
params: &TrustDistanceParams
) -> TrustSet
sourcepub fn lookup_url(&self, id: &Id) -> UrlOfId<'_>
pub fn lookup_url(&self, id: &Id) -> UrlOfId<'_>
Finds which URL is the latest and claimed to belong to the given Id. The result indicates how reliable information this is.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for ProofDB
impl Send for ProofDB
impl Sync for ProofDB
impl Unpin for ProofDB
impl UnwindSafe for ProofDB
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more