Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Demonstrate use of hashmap with new result objects for analysis storage #130

Merged
merged 7 commits into from
Jun 24, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: merge in changes from master
j-lanson committed Jun 20, 2024

Verified

This commit was signed with the committer’s verified signature.
henrikvtcodes Henrik VT
commit 1d70bc2f57ceef5a8485e2001c4c018a6b35faa5
6 changes: 3 additions & 3 deletions hipcheck/src/analysis/analysis.rs
Original file line number Diff line number Diff line change
@@ -179,14 +179,14 @@ impl Display for AnalysisOutcome {
}
}

pub fn activity_analysis(db: &dyn AnalysisProvider) -> Rc<HCAnalysisReport> {
pub fn activity_analysis(db: &dyn AnalysisProvider) -> Arc<HCAnalysisReport> {
let results = match db.activity_metric() {
Err(err) => return Rc::new(HCAnalysisReport::generic_error(err, vec![])),
Err(err) => return Arc::new(HCAnalysisReport::generic_error(err, vec![])),
Ok(results) => results,
};
let value = results.time_since_last_commit.num_weeks() as u64;
let hc_value = HCBasicValue::from(value);
Rc::new(HCAnalysisReport {
Arc::new(HCAnalysisReport {
outcome: HCAnalysisOutcome::Completed(HCAnalysisValue::Basic(hc_value)),
concerns: vec![],
})
4 changes: 2 additions & 2 deletions hipcheck/src/analysis/result.rs
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ use crate::Result;
use crate::F64;
use std::cmp::Ordering;
use std::fmt::{self, Display};
use std::rc::Rc;
use std::sync::Arc;

/// Represents the enhanced result of a hipcheck analysis. Contains the actual outcome
/// of the analysis, plus additional meta-information the analysis wants to provide to
@@ -163,7 +163,7 @@ impl ThresholdPredicate {
)),
};
HCStoredResult {
result: result.map(|r| Rc::new(r) as Rc<dyn HCPredicate>),
result: result.map(|r| Arc::new(r) as Arc<dyn HCPredicate>),
concerns: report.concerns.clone(),
}
}
30 changes: 15 additions & 15 deletions hipcheck/src/analysis/score.rs
Original file line number Diff line number Diff line change
@@ -45,7 +45,7 @@ pub struct ScoringResults {

#[derive(Debug, Clone)]
pub struct HCStoredResult {
pub result: Result<Rc<dyn HCPredicate>>,
pub result: Result<Arc<dyn HCPredicate>>,
pub concerns: Vec<Concern>,
}
impl HCStoredResult {
@@ -82,7 +82,7 @@ impl AltAnalysisResults {
pub fn add(
&mut self,
key: &str,
result: Result<Rc<dyn HCPredicate>>,
result: Result<Arc<dyn HCPredicate>>,
concerns: Vec<Concern>,
) -> Result<()> {
if self.table.contains_key(key) {
@@ -100,18 +100,18 @@ impl AltAnalysisResults {
#[derive(Debug, Default)]
pub struct AnalysisResults {
pub activity: Option<HCStoredResult>,
pub affiliation: Option<Result<Rc<AnalysisReport>>>,
pub binary: Option<Result<Rc<AnalysisReport>>>,
pub churn: Option<Result<Rc<AnalysisReport>>>,
pub entropy: Option<Result<Rc<AnalysisReport>>>,
pub identity: Option<Result<Rc<AnalysisReport>>>,
pub fuzz: Option<Result<Rc<AnalysisReport>>>,
pub review: Option<Result<Rc<AnalysisReport>>>,
pub typo: Option<Result<Rc<AnalysisReport>>>,
pub pull_request: Option<Result<Rc<AnalysisReport>>>,
pub pr_affiliation: Option<Result<Rc<AnalysisReport>>>,
pub pr_contributor_trust: Option<Result<Rc<AnalysisReport>>>,
pub pr_module_contributors: Option<Result<Rc<AnalysisReport>>>,
pub affiliation: Option<Result<Arc<AnalysisReport>>>,
pub binary: Option<Result<Arc<AnalysisReport>>>,
pub churn: Option<Result<Arc<AnalysisReport>>>,
pub entropy: Option<Result<Arc<AnalysisReport>>>,
pub identity: Option<Result<Arc<AnalysisReport>>>,
pub fuzz: Option<Result<Arc<AnalysisReport>>>,
pub review: Option<Result<Arc<AnalysisReport>>>,
pub typo: Option<Result<Arc<AnalysisReport>>>,
pub pull_request: Option<Result<Arc<AnalysisReport>>>,
pub pr_affiliation: Option<Result<Arc<AnalysisReport>>>,
pub pr_contributor_trust: Option<Result<Arc<AnalysisReport>>>,
pub pr_module_contributors: Option<Result<Arc<AnalysisReport>>>,
}

#[allow(dead_code)]
@@ -643,7 +643,7 @@ pub fn score_results(phase: &mut Phase, db: &dyn ScoringProvider) -> Result<Scor

// Scoring based off of predicate
let (act_score, outcome) = alt_results.table.get(ACTIVITY_PHASE).unwrap().score();
let score_result = Rc::new(ScoreResult {
let score_result = Arc::new(ScoreResult {
count: db.activity_weight(),
score: act_score,
outcome,
You are viewing a condensed version of this merge commit. You can view the full changes here.