drop figment

Just deserialize directly via the `toml` crate.
This commit is contained in:
Charles Hall 2024-06-06 22:07:32 -07:00
parent 003c0a4928
commit 2b0bc140cf
No known key found for this signature in database
GPG key ID: 7B8E0645816E07CF
4 changed files with 18 additions and 97 deletions

92
Cargo.lock generated
View file

@ -113,15 +113,6 @@ dependencies = [
"syn",
]
[[package]]
name = "atomic"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994"
dependencies = [
"bytemuck",
]
[[package]]
name = "atomic-waker"
version = "1.1.2"
@ -686,20 +677,6 @@ version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
[[package]]
name = "figment"
version = "0.10.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3"
dependencies = [
"atomic",
"pear",
"serde",
"toml",
"uncased",
"version_check",
]
[[package]]
name = "flate2"
version = "1.0.30"
@ -852,7 +829,6 @@ dependencies = [
"base64 0.22.1",
"bytes",
"clap",
"figment",
"futures-util",
"hmac",
"html-escape",
@ -892,6 +868,7 @@ dependencies = [
"thread_local",
"tikv-jemallocator",
"tokio",
"toml",
"tower",
"tower-http",
"tracing",
@ -1253,12 +1230,6 @@ dependencies = [
"serde",
]
[[package]]
name = "inlinable_string"
version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb"
[[package]]
name = "ipconfig"
version = "0.3.2"
@ -1754,29 +1725,6 @@ dependencies = [
"subtle",
]
[[package]]
name = "pear"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467"
dependencies = [
"inlinable_string",
"pear_codegen",
"yansi",
]
[[package]]
name = "pear_codegen"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147"
dependencies = [
"proc-macro2",
"proc-macro2-diagnostics",
"quote",
"syn",
]
[[package]]
name = "pem"
version = "3.0.4"
@ -1932,19 +1880,6 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "proc-macro2-diagnostics"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
dependencies = [
"proc-macro2",
"quote",
"syn",
"version_check",
"yansi",
]
[[package]]
name = "prometheus"
version = "0.13.4"
@ -3045,14 +2980,14 @@ dependencies = [
[[package]]
name = "toml"
version = "0.8.13"
version = "0.8.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
"toml_edit 0.22.13",
"toml_edit 0.22.14",
]
[[package]]
@ -3077,9 +3012,9 @@ dependencies = [
[[package]]
name = "toml_edit"
version = "0.22.13"
version = "0.22.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
dependencies = [
"indexmap 2.2.6",
"serde",
@ -3329,15 +3264,6 @@ version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e36a83ea2b3c704935a01b4642946aadd445cea40b10935e3f8bd8052b8193d6"
[[package]]
name = "uncased"
version = "0.9.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697"
dependencies = [
"version_check",
]
[[package]]
name = "unicode-bidi"
version = "0.3.15"
@ -3734,12 +3660,6 @@ dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "yansi"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
[[package]]
name = "yap"
version = "0.12.0"

View file

@ -95,7 +95,6 @@ axum-server = { version = "0.6.0", features = ["tls-rustls"] }
base64 = "0.22.1"
bytes = "1.6.0"
clap = { version = "4.5.4", default-features = false, features = ["std", "derive", "help", "usage", "error-context", "string"] }
figment = { version = "0.10.19", features = ["env", "toml"] }
futures-util = { version = "0.3.30", default-features = false }
hmac = "0.12.1"
html-escape = "0.2.13"
@ -134,6 +133,7 @@ thiserror = "1.0.61"
thread_local = "1.1.8"
tikv-jemallocator = { version = "0.5.4", features = ["unprefixed_malloc_on_supported_platforms"], optional = true }
tokio = { version = "1.37.0", features = ["fs", "macros", "signal", "sync"] }
toml = "0.8.14"
tower = { version = "0.4.13", features = ["util"] }
tower-http = { version = "0.5.2", features = ["add-extension", "cors", "sensitive-headers", "trace", "util"] }
tracing = { version = "0.1.40", features = [] }

View file

@ -38,8 +38,11 @@ impl fmt::Display for DisplayWithSources<'_> {
#[allow(missing_docs)]
#[derive(Error, Debug)]
pub(crate) enum Main {
#[error("invalid configuration")]
ConfigInvalid(#[from] figment::Error),
#[error("failed to read configuration file")]
ConfigRead(#[source] std::io::Error),
#[error("failed to parse configuration")]
ConfigParse(#[from] toml::de::Error),
#[error("failed to initialize observability")]
Observability(#[from] Observability),

View file

@ -16,10 +16,6 @@ use axum::{
use axum_server::{
bind, bind_rustls, tls_rustls::RustlsConfig, Handle as ServerHandle,
};
use figment::{
providers::{Format, Toml},
Figment,
};
use http::{
header::{self, HeaderName},
Method, StatusCode, Uri,
@ -110,10 +106,12 @@ async fn try_main() -> Result<(), error::Main> {
let args = args::parse();
// Initialize config
let raw_config = Figment::new().merge(Toml::file(&args.config));
let config = raw_config.extract::<Config>()?;
let config = toml::from_str(
&tokio::fs::read_to_string(&args.config)
.await
.map_err(Error::ConfigRead)?,
)
.map_err(Error::ConfigParse)?;
let _guard = observability::init(&config);