@@ -15,8 +15,8 @@ use std::collections::{BTreeMap, HashMap, HashSet};
1515/// `[workspace.metadata.cargo-feature-combinations]` instead.
1616#[ derive( Serialize , Deserialize , Default , Debug , Clone ) ]
1717pub struct Config {
18- #[ serde( default ) ]
1918 /// Feature sets that must be tested in isolation.
19+ #[ serde( default ) ]
2020 pub isolated_feature_sets : Vec < HashSet < String > > ,
2121 /// Formerly named `denylist`
2222 #[ serde( default ) ]
@@ -57,23 +57,23 @@ pub struct Config {
5757 /// Formerly named `exact_combinations`
5858 #[ serde( default ) ]
5959 pub include_feature_sets : Vec < HashSet < String > > ,
60- #[ serde( default ) ]
6160 /// Explicitly allowed feature sets.
62- pub allow_feature_sets : Vec < HashSet < String > > ,
6361 #[ serde( default ) ]
62+ pub allow_feature_sets : Vec < HashSet < String > > ,
6463 /// When enabled, disallow generating the empty feature set.
65- pub no_empty_feature_set : bool ,
6664 #[ serde( default ) ]
65+ pub no_empty_feature_set : bool ,
6766 /// Arbitrary user-defined matrix values forwarded to the runner.
67+ #[ serde( default ) ]
6868 pub matrix : HashMap < String , serde_json:: Value > ,
6969
7070 /// Target-specific configuration overrides.
7171 ///
7272 /// This is read from `[package.metadata.cargo-feature-combinations.target.'cfg(...)']`.
7373 #[ serde( default ) ]
7474 pub target : BTreeMap < String , TargetOverride > ,
75- #[ serde( flatten) ]
7675 /// Deprecated configuration keys (kept for backwards compatibility).
76+ #[ serde( flatten) ]
7777 pub deprecated : DeprecatedConfig ,
7878}
7979
@@ -88,56 +88,56 @@ pub struct TargetOverride {
8888 #[ serde( default ) ]
8989 pub replace : bool ,
9090
91- #[ serde( default ) ]
9291 /// Patch operations for [`Config::isolated_feature_sets`].
93- pub isolated_feature_sets : Option < FeatureSetVecPatch > ,
9492 #[ serde( default ) ]
93+ pub isolated_feature_sets : Option < FeatureSetVecPatch > ,
9594 /// Patch operations for [`Config::exclude_features`].
96- pub exclude_features : Option < StringSetPatch > ,
9795 #[ serde( default ) ]
96+ pub exclude_features : Option < StringSetPatch > ,
9897 /// Patch operations for [`Config::include_features`].
99- pub include_features : Option < StringSetPatch > ,
10098 #[ serde( default ) ]
99+ pub include_features : Option < StringSetPatch > ,
101100 /// Patch operations for [`Config::only_features`].
102- pub only_features : Option < StringSetPatch > ,
103101 #[ serde( default ) ]
102+ pub only_features : Option < StringSetPatch > ,
104103 /// Override for [`Config::skip_optional_dependencies`].
105- pub skip_optional_dependencies : Option < bool > ,
106104 #[ serde( default ) ]
105+ pub skip_optional_dependencies : Option < bool > ,
107106 /// Patch operations for [`Config::exclude_feature_sets`].
108- pub exclude_feature_sets : Option < FeatureSetVecPatch > ,
109107 #[ serde( default ) ]
108+ pub exclude_feature_sets : Option < FeatureSetVecPatch > ,
110109 /// Patch operations for [`Config::include_feature_sets`].
111- pub include_feature_sets : Option < FeatureSetVecPatch > ,
112110 #[ serde( default ) ]
111+ pub include_feature_sets : Option < FeatureSetVecPatch > ,
113112 /// Patch operations for [`Config::allow_feature_sets`].
114- pub allow_feature_sets : Option < FeatureSetVecPatch > ,
115113 #[ serde( default ) ]
114+ pub allow_feature_sets : Option < FeatureSetVecPatch > ,
116115 /// Override for [`Config::no_empty_feature_set`].
117- pub no_empty_feature_set : Option < bool > ,
118116 #[ serde( default ) ]
117+ pub no_empty_feature_set : Option < bool > ,
119118 /// Merge override for [`Config::matrix`].
119+ #[ serde( default ) ]
120120 pub matrix : Option < HashMap < String , serde_json:: Value > > ,
121121}
122122
123- #[ derive( Serialize , Deserialize , Default , Debug , Clone ) ]
124123/// Workspace-wide configuration for `cargo-feature-combinations`.
124+ #[ derive( Serialize , Deserialize , Default , Debug , Clone ) ]
125125pub struct WorkspaceConfig {
126126 /// List of package names to exclude from the workspace analysis.
127127 #[ serde( default ) ]
128128 pub exclude_packages : HashSet < String > ,
129129}
130130
131- #[ derive( Serialize , Deserialize , Default , Debug , Clone ) ]
132131/// Deprecated configuration keys kept for backwards compatibility.
132+ #[ derive( Serialize , Deserialize , Default , Debug , Clone ) ]
133133pub struct DeprecatedConfig {
134- #[ serde( default ) ]
135134 /// Former name of [`Config::exclude_feature_sets`].
136- pub skip_feature_sets : Vec < HashSet < String > > ,
137135 #[ serde( default ) ]
136+ pub skip_feature_sets : Vec < HashSet < String > > ,
138137 /// Former name of [`Config::exclude_features`].
139- pub denylist : HashSet < String > ,
140138 #[ serde( default ) ]
139+ pub denylist : HashSet < String > ,
141140 /// Former name of [`Config::include_feature_sets`].
141+ #[ serde( default ) ]
142142 pub exact_combinations : Vec < HashSet < String > > ,
143143}
0 commit comments