Skip to content

Commit

Permalink
fix AssetsRules again
Browse files Browse the repository at this point in the history
  • Loading branch information
boozook committed May 30, 2024
1 parent f3f1cc2 commit 9ffb277
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions support/build/src/metadata/format.rs
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ mod compat {
use super::{AssetsOptions, Deserialize, Deserializer, HashMap, RuleValue};

#[derive(Debug, Clone, PartialEq, Deserialize)]
#[serde(untagged, deny_unknown_fields)]
#[serde(untagged)]
enum AssetsRules {
Normal(super::AssetsRules),
LegacyMap {
Expand All @@ -353,11 +353,20 @@ mod compat {
/// then report it in error.
pub fn deserialize_ext<'de, D>(deserializer: D) -> Result<super::AssetsRules, D::Error>
where D: Deserializer<'de> {
match AssetsRules::deserialize(deserializer)? {
AssetsRules::Normal(rules) => Ok(rules),
AssetsRules::LegacyMap { .. } => {
let err = "unsupported field `assets.options` (that was before), use `options.assets` instead";
let err = serde::de::Error::custom(err);
match AssetsRules::deserialize(deserializer) {
Ok(result) => {
match result {
AssetsRules::Normal(rules) => Ok(rules),
AssetsRules::LegacyMap { .. } => {
const ERR: &str =
"unsupported field `assets.options` (that was before), use `options.assets` instead";
Err(serde::de::Error::custom(ERR))
},
}
},
Err(err) => {
const PRE: &str = "invalid `assets`, expected a list of paths or map of rules";
let err = serde::de::Error::custom(format_args!("{}: {}", PRE, err));
Err(err)
},
}
Expand Down

0 comments on commit 9ffb277

Please sign in to comment.