Skip to content

Commit 8e994c1

Browse files
committed
Simplify some config serialization stuff
1 parent e972dd2 commit 8e994c1

File tree

2 files changed

+27
-71
lines changed

2 files changed

+27
-71
lines changed

crates/rust-analyzer/src/config.rs

Lines changed: 26 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -968,8 +968,6 @@ macro_rules! try_or_def {
968968
};
969969
}
970970

971-
type ParallelCachePrimingNumThreads = u8;
972-
973971
#[derive(Debug, Clone, Eq, PartialEq)]
974972
pub enum LinkedProject {
975973
ProjectManifest(ProjectManifest),
@@ -2205,51 +2203,6 @@ macro_rules! create_bool_or_string_serde {
22052203
create_bool_or_string_serde!(true_or_always<true, "always">);
22062204
create_bool_or_string_serde!(false_or_never<false, "never">);
22072205

2208-
macro_rules! named_unit_variant {
2209-
($variant:ident) => {
2210-
pub(super) mod $variant {
2211-
pub(in super::super) fn deserialize<'de, D>(deserializer: D) -> Result<(), D::Error>
2212-
where
2213-
D: serde::Deserializer<'de>,
2214-
{
2215-
struct V;
2216-
impl<'de> serde::de::Visitor<'de> for V {
2217-
type Value = ();
2218-
fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2219-
f.write_str(concat!("\"", stringify!($variant), "\""))
2220-
}
2221-
fn visit_str<E: serde::de::Error>(self, value: &str) -> Result<Self::Value, E> {
2222-
if value == stringify!($variant) {
2223-
Ok(())
2224-
} else {
2225-
Err(E::invalid_value(serde::de::Unexpected::Str(value), &self))
2226-
}
2227-
}
2228-
}
2229-
deserializer.deserialize_str(V)
2230-
}
2231-
pub(in super::super) fn serialize<S>(serializer: S) -> Result<S::Ok, S::Error>
2232-
where
2233-
S: serde::Serializer,
2234-
{
2235-
serializer.serialize_str(stringify!($variant))
2236-
}
2237-
}
2238-
};
2239-
}
2240-
2241-
mod unit_v {
2242-
named_unit_variant!(all);
2243-
named_unit_variant!(skip_trivial);
2244-
named_unit_variant!(mutable);
2245-
named_unit_variant!(reborrow);
2246-
named_unit_variant!(fieldless);
2247-
named_unit_variant!(with_block);
2248-
named_unit_variant!(decimal);
2249-
named_unit_variant!(hexadecimal);
2250-
named_unit_variant!(both);
2251-
}
2252-
22532206
#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq)]
22542207
#[serde(rename_all = "snake_case")]
22552208
#[derive(Default)]
@@ -2364,10 +2317,10 @@ pub(crate) enum CallableCompletionDef {
23642317
}
23652318

23662319
#[derive(Serialize, Deserialize, Debug, Clone)]
2367-
#[serde(untagged)]
2320+
#[serde(rename_all = "snake_case")]
23682321
enum CargoFeaturesDef {
2369-
#[serde(with = "unit_v::all")]
23702322
All,
2323+
#[serde(untagged)]
23712324
Selected(Vec<String>),
23722325
}
23732326

@@ -2389,25 +2342,27 @@ enum InvocationLocation {
23892342
}
23902343

23912344
#[derive(Serialize, Deserialize, Debug, Clone)]
2392-
#[serde(untagged)]
2345+
#[serde(rename_all = "snake_case")]
23932346
enum LifetimeElisionDef {
2347+
SkipTrivial,
23942348
#[serde(with = "true_or_always")]
2349+
#[serde(untagged)]
23952350
Always,
23962351
#[serde(with = "false_or_never")]
2352+
#[serde(untagged)]
23972353
Never,
2398-
#[serde(with = "unit_v::skip_trivial")]
2399-
SkipTrivial,
24002354
}
24012355

24022356
#[derive(Serialize, Deserialize, Debug, Clone)]
2403-
#[serde(untagged)]
2357+
#[serde(rename_all = "snake_case")]
24042358
enum ClosureReturnTypeHintsDef {
2359+
WithBlock,
24052360
#[serde(with = "true_or_always")]
2361+
#[serde(untagged)]
24062362
Always,
24072363
#[serde(with = "false_or_never")]
2364+
#[serde(untagged)]
24082365
Never,
2409-
#[serde(with = "unit_v::with_block")]
2410-
WithBlock,
24112366
}
24122367

24132368
#[derive(Serialize, Deserialize, Debug, Clone)]
@@ -2420,36 +2375,39 @@ enum ClosureStyle {
24202375
}
24212376

24222377
#[derive(Serialize, Deserialize, Debug, Clone)]
2423-
#[serde(untagged)]
2378+
#[serde(rename_all = "snake_case")]
24242379
enum ReborrowHintsDef {
2380+
Mutable,
24252381
#[serde(with = "true_or_always")]
2382+
#[serde(untagged)]
24262383
Always,
24272384
#[serde(with = "false_or_never")]
2385+
#[serde(untagged)]
24282386
Never,
2429-
#[serde(with = "unit_v::mutable")]
2430-
Mutable,
24312387
}
24322388

24332389
#[derive(Serialize, Deserialize, Debug, Clone)]
2434-
#[serde(untagged)]
2390+
#[serde(rename_all = "snake_case")]
24352391
enum AdjustmentHintsDef {
2392+
Reborrow,
24362393
#[serde(with = "true_or_always")]
2394+
#[serde(untagged)]
24372395
Always,
24382396
#[serde(with = "false_or_never")]
2397+
#[serde(untagged)]
24392398
Never,
2440-
#[serde(with = "unit_v::reborrow")]
2441-
Reborrow,
24422399
}
24432400

24442401
#[derive(Serialize, Deserialize, Debug, Clone)]
2445-
#[serde(untagged)]
2402+
#[serde(rename_all = "snake_case")]
24462403
enum DiscriminantHintsDef {
2404+
Fieldless,
24472405
#[serde(with = "true_or_always")]
2406+
#[serde(untagged)]
24482407
Always,
24492408
#[serde(with = "false_or_never")]
2409+
#[serde(untagged)]
24502410
Never,
2451-
#[serde(with = "unit_v::fieldless")]
2452-
Fieldless,
24532411
}
24542412

24552413
#[derive(Serialize, Deserialize, Debug, Clone)]
@@ -2473,9 +2431,11 @@ enum FilesWatcherDef {
24732431
#[serde(rename_all = "snake_case")]
24742432
enum ImportPrefixDef {
24752433
Plain,
2476-
#[serde(alias = "self")]
2434+
#[serde(rename = "self")]
2435+
#[serde(alias = "by_self")]
24772436
BySelf,
2478-
#[serde(alias = "crate")]
2437+
#[serde(rename = "crate")]
2438+
#[serde(alias = "by_crate")]
24792439
ByCrate,
24802440
}
24812441

@@ -2502,13 +2462,9 @@ enum WorkspaceSymbolSearchKindDef {
25022462

25032463
#[derive(Serialize, Deserialize, Debug, Copy, Clone, PartialEq)]
25042464
#[serde(rename_all = "snake_case")]
2505-
#[serde(untagged)]
25062465
enum MemoryLayoutHoverRenderKindDef {
2507-
#[serde(with = "unit_v::decimal")]
25082466
Decimal,
2509-
#[serde(with = "unit_v::hexadecimal")]
25102467
Hexadecimal,
2511-
#[serde(with = "unit_v::both")]
25122468
Both,
25132469
}
25142470

docs/user/generated_config.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Term search fuel in "units of work" for assists (Defaults to 400).
1919
--
2020
Warm up caches on project load.
2121
--
22-
[[rust-analyzer.cachePriming.numThreads]]rust-analyzer.cachePriming.numThreads (default: `0`)::
22+
[[rust-analyzer.cachePriming.numThreads]]rust-analyzer.cachePriming.numThreads (default: `null`)::
2323
+
2424
--
2525
How many worker threads to handle priming caches. The default `0` means to pick automatically.

0 commit comments

Comments
 (0)