Simplify features

error-expose
SleeplessOne1917 2024-02-15 09:24:10 -05:00
parent 5bb2e4fbfd
commit e186edc7ca
3 changed files with 34 additions and 59 deletions

View File

@ -23,20 +23,6 @@ workspace = true
[features] [features]
default = [ 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", "error-type",
"dep:serde_json", "dep:serde_json",
"dep:anyhow", "dep:anyhow",
@ -44,11 +30,9 @@ error = [
"dep:diesel", "dep:diesel",
"dep:http", "dep:http",
"dep:actix-web", "dep:actix-web",
] "dep:reqwest-middleware",
request = ["dep:reqwest-middleware", "dep:tracing", "dep:strum"] "dep:tracing",
response = ["error", "dep:actix-web"] "dep:actix-web",
settings = [
"error",
"dep:deser-hjson", "dep:deser-hjson",
"dep:regex", "dep:regex",
"dep:urlencoding", "dep:urlencoding",
@ -56,34 +40,20 @@ settings = [
"dep:url", "dep:url",
"dep:once_cell", "dep:once_cell",
"dep:smart-default", "dep:smart-default",
]
rate-limit = [
"error",
"dep:enum-map", "dep:enum-map",
"dep:tracing",
"dep:actix-web",
"dep:futures", "dep:futures",
"dep:tokio", "dep:tokio",
"dep:once_cell", "dep:openssl",
]
apub = ["dep:openssl"]
cache-header = ["dep:actix-web"]
email = [
"error",
"settings",
"dep:html2text", "dep:html2text",
"dep:lettre", "dep:lettre",
"dep:uuid", "dep:uuid",
"dep:rosetta-i18n", "dep:rosetta-i18n",
]
misc = [
"settings",
"dep:itertools", "dep:itertools",
"dep:markdown-it", "dep:markdown-it",
"dep:tokio",
"dep:futures",
"dep:tracing",
] ]
full = ["default", "dep:ts-rs"]
error-type = ["dep:serde", "dep:strum"]
[dependencies] [dependencies]
regex = { workspace = true, optional = true } regex = { workspace = true, optional = true }

View File

@ -2,7 +2,7 @@ use cfg_if::cfg_if;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::fmt::Debug; use std::fmt::Debug;
use strum_macros::{Display, EnumIter}; use strum_macros::{Display, EnumIter};
#[cfg(feature = "ts-rs")] #[cfg(feature = "full")]
use ts_rs::TS; use ts_rs::TS;
#[derive(Display, Debug, Serialize, Deserialize, Clone, PartialEq, Eq, EnumIter, Hash)] #[derive(Display, Debug, Serialize, Deserialize, Clone, PartialEq, Eq, EnumIter, Hash)]
@ -168,7 +168,7 @@ pub enum LemmyErrorType {
} }
cfg_if! { cfg_if! {
if #[cfg(feature = "error")] { if #[cfg(feature = "default")] {
use tracing_error::SpanTrace; use tracing_error::SpanTrace;
use std::fmt; use std::fmt;

View File

@ -1,22 +1,27 @@
#[cfg(feature = "apub")] use cfg_if::cfg_if;
pub mod apub;
#[cfg(feature = "cache-header")] cfg_if! {
pub mod cache_header; if #[cfg(feature = "default")] {
#[cfg(feature = "email")] pub mod apub;
pub mod email; pub mod cache_header;
#[cfg(feature = "error-type")] pub mod email;
pub mod error; pub mod error;
#[cfg(feature = "rate-limit")] pub mod rate_limit;
pub mod rate_limit; pub mod request;
#[cfg(feature = "request")] pub mod response;
pub mod request; pub mod settings;
#[cfg(feature = "response")] pub mod utils;
pub mod response; pub mod version;
#[cfg(feature = "settings")] } else {
pub mod settings; mod error;
#[cfg(feature = "misc")] }
pub mod utils; }
pub mod version;
cfg_if! {
if #[cfg(feature = "error-type")] {
pub use error::LemmyErrorType;
}
}
use std::time::Duration; 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 /// tokio::spawn, but accepts a future that may fail and also
/// * logs errors /// * logs errors
/// * attaches the spawned task to the tracing span of the caller for better logging /// * attaches the spawned task to the tracing span of the caller for better logging