Struct crev_wot::ProofDB

source ·
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§

source§

impl ProofDB

source

pub fn new() -> Self

Use Local::load_db() to populate it

source

pub fn get_pkg_alternatives_by_author( &self, from: &Id, pkg_id: &PackageId ) -> HashSet<PackageId>

source

pub fn get_pkg_alternatives( &self, pkg_id: &PackageId ) -> HashSet<(Id, PackageId)>

source

pub fn get_pkg_flags_by_author<'s>( &'s self, from: &Id, pkg_id: &PackageId ) -> Option<&'s Flags>

source

pub fn get_pkg_flags( &self, pkg_id: &PackageId ) -> impl Iterator<Item = (&Id, &Flags)>

source

pub fn get_pkg_reviews_for_source<'a>( &'a self, source: RegistrySource<'_> ) -> impl Iterator<Item = &'a Package>

Use "https://crates.io" to get all crates-io reviews

source

pub fn get_pkg_reviews_for_name<'a, 'b, 'c: 'a>( &'a self, source: RegistrySource<'b>, name: &'c str ) -> impl Iterator<Item = &'a Package>

source

pub fn get_pkg_reviews_for_version<'a, 'b, 'c: 'a, 'd: 'a>( &'a self, source: RegistrySource<'b>, name: &'c str, version: &'d Version ) -> impl Iterator<Item = &'a Package>

source

pub fn get_pkg_reviews_gte_version<'a, 'b, 'c: 'a, 'd: 'a>( &'a self, source: RegistrySource<'b>, name: &'c str, version: &'d Version ) -> impl Iterator<Item = &'a Package>

source

pub fn get_pkg_reviews_lte_version<'a, 'b, 'c: 'a, 'd: 'a>( &'a self, source: RegistrySource<'b>, name: &'c str, version: &'d Version ) -> impl Iterator<Item = &'a Package>

source

pub fn get_pkg_review_by_pkg_review_id( &self, uniq: &PkgVersionReviewId ) -> Option<&Package>

source

pub fn get_proof_digest_by_pkg_review_id( &self, uniq: &PkgVersionReviewId ) -> Option<&Digest>

source

pub fn get_pkg_review<'a, 'b, 'c: 'a, 'd: 'a>( &'a self, source: RegistrySource<'b>, name: &'c str, version: &'d Version, id: &Id ) -> Option<&Package>

source

pub fn get_advisories<'a, 'b, 'c: 'a, 'd: 'a>( &'a self, source: RegistrySource<'b>, name: Option<&'c str>, version: Option<&'d Version> ) -> impl Iterator<Item = &'a Package> + 'a

source

pub fn get_pkg_reviews_with_issues_for<'a, 'b, 'c: 'a, 'd: 'a>( &'a self, source: RegistrySource<'b>, name: Option<&'c str>, version: Option<&'c Version>, trust_set: &'d TrustSet, trust_level_required: TrustLevel ) -> impl Iterator<Item = &Package>

source

pub fn get_advisories_for_version<'a, 'b, 'c: 'a, 'd: 'a>( &'a self, source: RegistrySource<'b>, name: &'c str, version: &'d Version ) -> impl Iterator<Item = &Package>

source

pub fn get_advisories_for_package<'a, 'b, 'c: 'a>( &'a self, source: RegistrySource<'b>, name: &'c str ) -> impl Iterator<Item = &Package>

source

pub fn get_advisories_for_source( &self, source: RegistrySource<'_> ) -> impl Iterator<Item = &Package>

source

pub fn get_open_issues_for_version( &self, source: RegistrySource<'_>, 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.

source

pub fn get_pkg_reviews_with_issues_for_version<'a, 'b, 'c: 'a>( &'a self, source: RegistrySource<'b>, name: &'c str, queried_version: &'c Version, trust_set: &'c TrustSet, trust_level_required: TrustLevel ) -> impl Iterator<Item = &Package>

source

pub fn get_pkg_reviews_with_issues_for_name<'a, 'b, 'c: 'a>( &'a self, source: RegistrySource<'b>, name: &'c str, trust_set: &'c TrustSet, trust_level_required: TrustLevel ) -> impl Iterator<Item = &Package>

source

pub fn get_pkg_reviews_with_issues_for_source<'a, 'b, 'c: 'a>( &'a self, source: RegistrySource<'b>, trust_set: &'c TrustSet, trust_level_required: TrustLevel ) -> impl Iterator<Item = &Package>

source

pub fn unique_package_review_proof_count(&self) -> usize

source

pub fn unique_trust_proof_count(&self) -> usize

source

pub fn get_package_review_count( &self, source: RegistrySource<'_>, name: Option<&str>, version: Option<&Version> ) -> usize

source

pub fn get_package_reviews_for_package<'a, 'b, 'c: 'a, 'd: 'a>( &'a self, source: RegistrySource<'b>, name: Option<&'c str>, version: Option<&'d Version> ) -> impl Iterator<Item = &'a Package> + 'a

source

pub fn get_package_reviews_for_package_sorted<'a, 'b, 'c: 'a, 'd: 'a>( &'a self, source: RegistrySource<'b>, name: Option<&'c str>, version: Option<&'d Version> ) -> Vec<Package>

source

pub fn all_known_ids(&self) -> BTreeSet<Id>

source

pub fn get_reverse_trust_for<'id, 's: 'id>( &'s self, id: &'id Id ) -> impl Iterator<Item = (&'id Id, TrustLevel)> + 's

Only for direct relationship. See calculate_trust_set.

source

pub fn all_author_ids(&self) -> BTreeMap<Id, usize>

Get all Ids that authored a proof (with total count)

source

pub fn get_package_review_by_signature<'a>( &'a self, signature: &str ) -> Option<&'a Package>

source

pub fn get_package_reviews_by_digest<'a>( &'a self, digest: &Digest ) -> impl Iterator<Item = Package> + 'a

source

pub fn record_trusted_url_from_own_id(&mut self, own_id: &PublicId)

source

pub fn import_from_iter( &mut self, i: impl Iterator<Item = (Proof, FetchSource)> )

source

pub fn get_trust_proof_between(&self, from: &Id, to: &Id) -> Option<&Trust>

Only for direct relationship. See calculate_trust_set.

source

pub fn calculate_trust_set( &self, for_id: &Id, params: &TrustDistanceParams ) -> TrustSet

How much you trust others

source

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§

source§

impl Default for ProofDB

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V