diff --git a/src/api/msn/map.rs b/src/api/msn/map.rs index a0459a3..f57aba8 100644 --- a/src/api/msn/map.rs +++ b/src/api/msn/map.rs @@ -184,13 +184,7 @@ fn normalize_percentish(value: Option) -> Option { } fn sanitize_current_ratio(value: Option) -> Option { - value.and_then(|number| { - if !number.is_finite() || number < 0.01 { - None - } else { - Some(number) - } - }) + value.filter(|number| number.is_finite() && *number >= 0.01) } fn round_price(value: f64) -> i64 { diff --git a/src/cli/stocks.rs b/src/cli/stocks.rs index 217ac3c..65d364a 100644 --- a/src/cli/stocks.rs +++ b/src/cli/stocks.rs @@ -983,10 +983,10 @@ fn sort_screener_quotes(quotes: &mut [Quote], filter: &str) { }); } "high-volume" => { - quotes.sort_by(|a, b| b.volume.cmp(&a.volume)); + quotes.sort_by_key(|quote| std::cmp::Reverse(quote.volume)); } "large-cap" => { - quotes.sort_by(|a, b| b.market_cap.unwrap_or(0).cmp(&a.market_cap.unwrap_or(0))); + quotes.sort_by_key(|quote| std::cmp::Reverse(quote.market_cap.unwrap_or(0))); } _ => {} } diff --git a/src/ownership/db.rs b/src/ownership/db.rs index a35073d..af4b936 100644 --- a/src/ownership/db.rs +++ b/src/ownership/db.rs @@ -196,10 +196,7 @@ fn insert_ksei_holdings_rows( ) .map_err(|e| IdxError::DatabaseError(e.to_string())); - match changed { - Ok(n) => inserted += n, - Err(err) => return Err(err), - } + inserted += changed?; } Ok(inserted) diff --git a/src/ownership/graph.rs b/src/ownership/graph.rs index 5c18e48..981e5cc 100644 --- a/src/ownership/graph.rs +++ b/src/ownership/graph.rs @@ -122,7 +122,7 @@ pub fn format_graph_text(nodes: &[GraphNode], edges: &[GraphEdge]) -> String { out.push_str(&format!("nodes: {} edges: {}\n", nodes.len(), edges.len())); for (ticker_id, mut rels) in ticker_to_entities { - rels.sort_by(|a, b| b.percentage_bps.cmp(&a.percentage_bps)); + rels.sort_by_key(|edge| std::cmp::Reverse(edge.percentage_bps)); let ticker_label = labels.get(ticker_id).map(|v| v.0).unwrap_or(ticker_id); out.push_str(&format!("\n{ticker_label} [TICKER]\n"));