From e186edc7cac5f0fe2b79f3daec243457bc474463 Mon Sep 17 00:00:00 2001 From: SleeplessOne1917 Date: Thu, 15 Feb 2024 09:24:10 -0500 Subject: [PATCH] Simplify features --- crates/utils/Cargo.toml | 44 ++++++-------------------------------- crates/utils/src/error.rs | 4 ++-- crates/utils/src/lib.rs | 45 ++++++++++++++++++++++----------------- 3 files changed, 34 insertions(+), 59 deletions(-) diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index 5acb9788a..326cbf2e4 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -23,20 +23,6 @@ workspace = true [features] default = [ - "error", - "request", - "response", - "settings", - "misc", - "rate-limit", - "apub", - "cache-header", - "email", -] -full = ["default", "ts-rs"] -ts-rs = ["dep:ts-rs"] -error-type = ["dep:serde", "dep:strum"] -error = [ "error-type", "dep:serde_json", "dep:anyhow", @@ -44,11 +30,9 @@ error = [ "dep:diesel", "dep:http", "dep:actix-web", -] -request = ["dep:reqwest-middleware", "dep:tracing", "dep:strum"] -response = ["error", "dep:actix-web"] -settings = [ - "error", + "dep:reqwest-middleware", + "dep:tracing", + "dep:actix-web", "dep:deser-hjson", "dep:regex", "dep:urlencoding", @@ -56,34 +40,20 @@ settings = [ "dep:url", "dep:once_cell", "dep:smart-default", -] -rate-limit = [ - "error", "dep:enum-map", - "dep:tracing", - "dep:actix-web", "dep:futures", "dep:tokio", - "dep:once_cell", -] -apub = ["dep:openssl"] -cache-header = ["dep:actix-web"] -email = [ - "error", - "settings", + "dep:openssl", "dep:html2text", "dep:lettre", "dep:uuid", "dep:rosetta-i18n", -] -misc = [ - "settings", "dep:itertools", "dep:markdown-it", - "dep:tokio", - "dep:futures", - "dep:tracing", + ] +full = ["default", "dep:ts-rs"] +error-type = ["dep:serde", "dep:strum"] [dependencies] regex = { workspace = true, optional = true } diff --git a/crates/utils/src/error.rs b/crates/utils/src/error.rs index 7e5017003..a4ee4ee7d 100644 --- a/crates/utils/src/error.rs +++ b/crates/utils/src/error.rs @@ -2,7 +2,7 @@ use cfg_if::cfg_if; use serde::{Deserialize, Serialize}; use std::fmt::Debug; use strum_macros::{Display, EnumIter}; -#[cfg(feature = "ts-rs")] +#[cfg(feature = "full")] use ts_rs::TS; #[derive(Display, Debug, Serialize, Deserialize, Clone, PartialEq, Eq, EnumIter, Hash)] @@ -168,7 +168,7 @@ pub enum LemmyErrorType { } cfg_if! { - if #[cfg(feature = "error")] { + if #[cfg(feature = "default")] { use tracing_error::SpanTrace; use std::fmt; diff --git a/crates/utils/src/lib.rs b/crates/utils/src/lib.rs index 66e50787b..65dbaaa45 100644 --- a/crates/utils/src/lib.rs +++ b/crates/utils/src/lib.rs @@ -1,22 +1,27 @@ -#[cfg(feature = "apub")] -pub mod apub; -#[cfg(feature = "cache-header")] -pub mod cache_header; -#[cfg(feature = "email")] -pub mod email; -#[cfg(feature = "error-type")] -pub mod error; -#[cfg(feature = "rate-limit")] -pub mod rate_limit; -#[cfg(feature = "request")] -pub mod request; -#[cfg(feature = "response")] -pub mod response; -#[cfg(feature = "settings")] -pub mod settings; -#[cfg(feature = "misc")] -pub mod utils; -pub mod version; +use cfg_if::cfg_if; + +cfg_if! { + if #[cfg(feature = "default")] { + pub mod apub; + pub mod cache_header; + pub mod email; + pub mod error; + pub mod rate_limit; + pub mod request; + pub mod response; + pub mod settings; + pub mod utils; + pub mod version; + } else { + mod error; + } +} + +cfg_if! { + if #[cfg(feature = "error-type")] { + pub use error::LemmyErrorType; + } +} use std::time::Duration; @@ -36,7 +41,7 @@ macro_rules! location_info { }; } -#[cfg(feature = "misc")] +#[cfg(feature = "default")] /// tokio::spawn, but accepts a future that may fail and also /// * logs errors /// * attaches the spawned task to the tracing span of the caller for better logging