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]
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 }

View File

@ -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;

View File

@ -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