⚙️ refactor: change & add documentation to the code based on the lints (#205)
This commit is contained in:
parent
0d2d449889
commit
049b1c1ddd
16 changed files with 177 additions and 132 deletions
|
@ -8,20 +8,17 @@ use crate::{config::parser_models::Style, engines::engine_models::EngineError};
|
|||
/// A named struct to store the raw scraped search results scraped search results from the
|
||||
/// upstream search engines before aggregating it.It derives the Clone trait which is needed
|
||||
/// to write idiomatic rust using `Iterators`.
|
||||
///
|
||||
/// # Fields
|
||||
///
|
||||
/// * `title` - The title of the search result.
|
||||
/// * `url` - The url which is accessed when clicked on it
|
||||
/// (href url in html in simple words).
|
||||
/// * `description` - The description of the search result.
|
||||
/// * `engine` - The names of the upstream engines from which this results were provided.
|
||||
#[derive(Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SearchResult {
|
||||
/// The title of the search result.
|
||||
pub title: String,
|
||||
/// The url which is accessed when clicked on it
|
||||
pub url: String,
|
||||
/// The description of the search result.
|
||||
pub description: String,
|
||||
/// The names of the upstream engines from which this results were provided.
|
||||
pub engine: Vec<String>,
|
||||
}
|
||||
|
||||
|
@ -63,15 +60,27 @@ impl SearchResult {
|
|||
}
|
||||
}
|
||||
|
||||
///
|
||||
/// A named struct that stores the error info related to the upstream search engines.
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct EngineErrorInfo {
|
||||
/// It stores the error type which occured while fetching the result from a particular search
|
||||
/// engine.
|
||||
pub error: String,
|
||||
/// It stores the name of the engine that failed to provide the requested search results.
|
||||
pub engine: String,
|
||||
/// It stores the name of the color to indicate whether how severe the particular error is (In
|
||||
/// other words it indicates the severity of the error/issue).
|
||||
pub severity_color: String,
|
||||
}
|
||||
|
||||
impl EngineErrorInfo {
|
||||
/// Constructs a new `SearchResult` with the given arguments needed for the struct.
|
||||
///
|
||||
/// # Arguments
|
||||
///
|
||||
/// * `error` - It takes the error type which occured while fetching the result from a particular
|
||||
/// search engine.
|
||||
/// * `engine` - It takes the name of the engine that failed to provide the requested search results.
|
||||
pub fn new(error: &EngineError, engine: String) -> Self {
|
||||
Self {
|
||||
error: match error {
|
||||
|
@ -91,23 +100,18 @@ impl EngineErrorInfo {
|
|||
|
||||
/// A named struct to store, serialize, deserialize the all the search results scraped and
|
||||
/// aggregated from the upstream search engines.
|
||||
///
|
||||
/// # Fields
|
||||
///
|
||||
/// * `results` - Stores the individual serializable `SearchResult` struct into a vector of
|
||||
/// `SearchResult` structs.
|
||||
/// * `page_query` - Stores the current pages search query `q` provided in the search url.
|
||||
/// * `style` - Stores the theming options for the website.
|
||||
/// * `engine_errors_info` - Stores the information on which engines failed with their engine name
|
||||
/// and the type of error that caused it.
|
||||
/// * `empty_result_set` - Stores a boolean which indicates that no engines gave a result for the
|
||||
/// given search query.
|
||||
#[derive(Serialize, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SearchResults {
|
||||
/// Stores the individual serializable `SearchResult` struct into a vector of
|
||||
pub results: Vec<SearchResult>,
|
||||
/// Stores the current pages search query `q` provided in the search url.
|
||||
pub page_query: String,
|
||||
/// Stores the theming options for the website.
|
||||
pub style: Style,
|
||||
/// Stores the information on which engines failed with their engine name
|
||||
/// and the type of error that caused it.
|
||||
pub engine_errors_info: Vec<EngineErrorInfo>,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
//! This module provides modules that handle the functionality to aggregate the fetched search
|
||||
//! results from the upstream search engines and filters it if safe search is set to 3 or 4. Also,
|
||||
//! provides various models to aggregate search results into a standardized form.
|
||||
|
||||
pub mod aggregation_models;
|
||||
pub mod aggregator;
|
||||
pub mod user_agent;
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
use fake_useragent::{Browsers, UserAgents, UserAgentsBuilder};
|
||||
|
||||
/// A static variable which stores the initially build `UserAgents` struct. So as it can be resused
|
||||
/// again and again without the need of reinitializing the `UserAgents` struct.
|
||||
static USER_AGENTS: once_cell::sync::Lazy<UserAgents> = once_cell::sync::Lazy::new(|| {
|
||||
UserAgentsBuilder::new()
|
||||
.cache(false)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue