Skip to content

Commit a0163f7

Browse files
committed
Remove FieldName enum
1 parent dca8ff5 commit a0163f7

File tree

1 file changed

+6
-34
lines changed

1 file changed

+6
-34
lines changed

src/bootstrap/config.rs

+6-34
Original file line numberDiff line numberDiff line change
@@ -389,37 +389,6 @@ macro_rules! define_config {
389389
where
390390
D: Deserializer<'de>,
391391
{
392-
#[allow(non_camel_case_types)]
393-
enum FieldName {
394-
$($field,)*
395-
}
396-
struct FieldNameVisitor;
397-
impl<'de> serde::de::Visitor<'de> for FieldNameVisitor {
398-
type Value = FieldName;
399-
fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
400-
f.write_str("field identifier")
401-
}
402-
403-
#[inline]
404-
fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
405-
where
406-
E: serde::de::Error,
407-
{
408-
match value {
409-
$($field_key => Ok(FieldName::$field),)*
410-
_ => Err(serde::de::Error::unknown_field(value, FIELDS)),
411-
}
412-
}
413-
}
414-
impl<'de> Deserialize<'de> for FieldName {
415-
#[inline]
416-
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
417-
where
418-
D: Deserializer<'de>,
419-
{
420-
Deserializer::deserialize_identifier(deserializer, FieldNameVisitor)
421-
}
422-
}
423392
struct Field;
424393
impl<'de> serde::de::Visitor<'de> for Field {
425394
type Value = $name;
@@ -434,15 +403,15 @@ macro_rules! define_config {
434403
{
435404
$(let mut $field: Option<$field_ty> = None;)*
436405
while let Some(key) =
437-
match serde::de::MapAccess::next_key::<FieldName>(&mut map) {
406+
match serde::de::MapAccess::next_key::<String>(&mut map) {
438407
Ok(val) => val,
439408
Err(err) => {
440409
return Err(err);
441410
}
442411
}
443412
{
444-
match key {
445-
$(FieldName::$field => {
413+
match &*key {
414+
$($field_key => {
446415
if $field.is_some() {
447416
return Err(<A::Error as serde::de::Error>::duplicate_field(
448417
$field_key,
@@ -457,6 +426,9 @@ macro_rules! define_config {
457426
}
458427
};
459428
})*
429+
key => {
430+
return Err(serde::de::Error::unknown_field(key, FIELDS));
431+
}
460432
}
461433
}
462434
Ok($name { $($field),* })

0 commit comments

Comments
 (0)