( id: &str, feature_id: &str, feature: &FeatureData, compat_status: &crate::web_features_data::CompatKeyStatus, popularity_map: &HashMap<String, f64>, all_groups: &mut HashMap<String, HashSet<St
| 905 | } |
| 906 | |
| 907 | fn generate_feature_entry_tokens( |
| 908 | id: &str, |
| 909 | feature_id: &str, |
| 910 | feature: &FeatureData, |
| 911 | compat_status: &crate::web_features_data::CompatKeyStatus, |
| 912 | popularity_map: &HashMap<String, f64>, |
| 913 | all_groups: &mut HashMap<String, HashSet<String>>, |
| 914 | all_specs: &mut HashMap<String, HashSet<String>>, |
| 915 | ) -> TokenStream { |
| 916 | let name = feature.name.as_deref().unwrap_or(""); |
| 917 | let description = feature.description.as_deref().unwrap_or(""); |
| 918 | |
| 919 | let spec = if let Some(spec_val) = &feature.spec { |
| 920 | match spec_val { |
| 921 | StringOrArray::Single(s) => s.as_str(), |
| 922 | StringOrArray::Multiple(v) => v.first().map(|s| s.as_str()).unwrap_or(""), |
| 923 | } |
| 924 | } else { |
| 925 | "" |
| 926 | }; |
| 927 | |
| 928 | if !spec.is_empty() |
| 929 | && let Some(spec_val) = &feature.spec |
| 930 | { |
| 931 | match spec_val { |
| 932 | StringOrArray::Single(s) => { |
| 933 | all_specs.entry(s.clone()).or_default().insert(id.to_string()); |
| 934 | } |
| 935 | StringOrArray::Multiple(v) => { |
| 936 | for s in v { |
| 937 | all_specs.entry(s.clone()).or_default().insert(id.to_string()); |
| 938 | } |
| 939 | } |
| 940 | } |
| 941 | } |
| 942 | |
| 943 | let groups: Vec<&str> = if let Some(group_val) = &feature.group { |
| 944 | match group_val { |
| 945 | StringOrArray::Single(s) => { |
| 946 | if !s.is_empty() && s != "css" { |
| 947 | all_groups.entry(s.clone()).or_default().insert(id.to_string()); |
| 948 | vec![s.as_str()] |
| 949 | } else { |
| 950 | vec![] |
| 951 | } |
| 952 | } |
| 953 | StringOrArray::Multiple(v) => v |
| 954 | .iter() |
| 955 | .filter(|g| !g.is_empty() && g.as_str() != "css") |
| 956 | .map(|g| { |
| 957 | all_groups.entry(g.clone()).or_default().insert(id.to_string()); |
| 958 | g.as_str() |
| 959 | }) |
| 960 | .collect(), |
| 961 | } |
| 962 | } else { |
| 963 | vec![] |
| 964 | }; |
no test coverage detected