// This file is autogenerated by build-prefixes.js. DO NOT EDIT! use crate::targets::Browsers; #[derive(Clone, Copy, PartialEq)] pub enum Feature { AnyPseudo, Clamp, ColorFunction, CssAnyLink, CssAutofill, CssCaseInsensitive, CssDefaultPseudo, CssDirPseudo, CssFirstLetter, CssFirstLine, CssFocusVisible, CssFocusWithin, CssGencontent, CssHas, CssInOutOfRange, CssIndeterminatePseudo, CssMarkerPseudo, CssMatchesPseudo, CssNamespaces, CssNesting, CssNotSelList, CssOptionalPseudo, CssPlaceholder, CssPlaceholderShown, CssReadOnlyWrite, CssRrggbbaa, CssSel2, CssSel3, CssSelection, Cue, CueFunction, CustomMediaQueries, Dialog, DoublePositionGradients, FontFamilySystemUi, FormValidation, Fullscreen, ImageSet, LabColors, LangList, LogicalBorderRadius, LogicalBorderShorthand, LogicalBorders, LogicalInset, LogicalMargin, LogicalMarginShorthand, LogicalPadding, LogicalPaddingShorthand, LogicalSize, LogicalTextAlign, MediaIntervalSyntax, MediaRangeSyntax, OklabColors, OverflowShorthand, P3Colors, PlaceContent, PlaceItems, PlaceSelf, Shadowdomv1, SpaceSeparatedColorFunction, TextDecorationThicknessPercent, TextDecorationThicknessShorthand, XResolutionUnit, } impl Feature { pub fn is_compatible(&self, browsers: Browsers) -> bool { match self { Feature::CssSel2 => { if let Some(version) = browsers.ie { if version < 458752 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 131072 { return false; } } if let Some(version) = browsers.chrome { if version < 262144 { return false; } } if let Some(version) = browsers.safari { if version < 196864 { return false; } } if let Some(version) = browsers.opera { if version < 589824 { return false; } } if let Some(version) = browsers.ios_saf { if version < 197120 { return false; } } if let Some(version) = browsers.android { if version < 131328 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } } Feature::CssSel3 => { if let Some(version) = browsers.ie { if version < 589824 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 197888 { return false; } } if let Some(version) = browsers.chrome { if version < 262144 { return false; } } if let Some(version) = browsers.safari { if version < 197120 { return false; } } if let Some(version) = browsers.opera { if version < 591104 { return false; } } if let Some(version) = browsers.ios_saf { if version < 197120 { return false; } } if let Some(version) = browsers.android { if version < 131328 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } } Feature::CssGencontent | Feature::CssFirstLine => { if let Some(version) = browsers.ie { if version < 589824 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 131072 { return false; } } if let Some(version) = browsers.chrome { if version < 262144 { return false; } } if let Some(version) = browsers.safari { if version < 196864 { return false; } } if let Some(version) = browsers.opera { if version < 589824 { return false; } } if let Some(version) = browsers.ios_saf { if version < 197120 { return false; } } if let Some(version) = browsers.android { if version < 131328 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } } Feature::CssFirstLetter => { if let Some(version) = browsers.ie { if version < 589824 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 197888 { return false; } } if let Some(version) = browsers.chrome { if version < 589824 { return false; } } if let Some(version) = browsers.safari { if version < 327936 { return false; } } if let Some(version) = browsers.opera { if version < 722432 { return false; } } if let Some(version) = browsers.ios_saf { if version < 327680 { return false; } } if let Some(version) = browsers.android { if version < 196608 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } } Feature::CssInOutOfRange => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3276800 { return false; } } if let Some(version) = browsers.chrome { if version < 3473408 { return false; } } if let Some(version) = browsers.safari { if version < 655616 { return false; } } if let Some(version) = browsers.opera { if version < 2621440 { return false; } } if let Some(version) = browsers.ios_saf { if version < 656128 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 327680 { return false; } } if browsers.ie.is_some() { return false; } } Feature::FormValidation => { if let Some(version) = browsers.ie { if version < 655360 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 262144 { return false; } } if let Some(version) = browsers.chrome { if version < 655360 { return false; } } if let Some(version) = browsers.safari { if version < 655616 { return false; } } if let Some(version) = browsers.opera { if version < 655360 { return false; } } if let Some(version) = browsers.ios_saf { if version < 656128 { return false; } } if let Some(version) = browsers.android { if version < 263171 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } } Feature::CssAnyLink => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3276800 { return false; } } if let Some(version) = browsers.chrome { if version < 4259840 { return false; } } if let Some(version) = browsers.safari { if version < 589824 { return false; } } if let Some(version) = browsers.opera { if version < 3407872 { return false; } } if let Some(version) = browsers.ios_saf { if version < 589824 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 590336 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssDefaultPseudo => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 262144 { return false; } } if let Some(version) = browsers.chrome { if version < 3342336 { return false; } } if let Some(version) = browsers.safari { if version < 655616 { return false; } } if let Some(version) = browsers.opera { if version < 2490368 { return false; } } if let Some(version) = browsers.ios_saf { if version < 656128 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 327680 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssDirPseudo => { if let Some(version) = browsers.firefox { if version < 3211264 { return false; } } if browsers.android.is_some() || browsers.chrome.is_some() || browsers.edge.is_some() || browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.opera.is_some() || browsers.safari.is_some() || browsers.samsung.is_some() { return false; } } Feature::CssFocusWithin => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3407872 { return false; } } if let Some(version) = browsers.chrome { if version < 3932160 { return false; } } if let Some(version) = browsers.safari { if version < 655616 { return false; } } if let Some(version) = browsers.opera { if version < 3080192 { return false; } } if let Some(version) = browsers.ios_saf { if version < 656128 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 524800 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssFocusVisible => { if let Some(version) = browsers.edge { if version < 5636096 { return false; } } if let Some(version) = browsers.firefox { if version < 5570560 { return false; } } if let Some(version) = browsers.chrome { if version < 5636096 { return false; } } if let Some(version) = browsers.safari { if version < 984064 { return false; } } if let Some(version) = browsers.opera { if version < 4718592 { return false; } } if let Some(version) = browsers.ios_saf { if version < 984064 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 917504 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssIndeterminatePseudo => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3342336 { return false; } } if let Some(version) = browsers.chrome { if version < 2555904 { return false; } } if let Some(version) = browsers.safari { if version < 655616 { return false; } } if let Some(version) = browsers.opera { if version < 1703936 { return false; } } if let Some(version) = browsers.ios_saf { if version < 656128 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssMatchesPseudo => { if let Some(version) = browsers.edge { if version < 5767168 { return false; } } if let Some(version) = browsers.firefox { if version < 5111808 { return false; } } if let Some(version) = browsers.chrome { if version < 5767168 { return false; } } if let Some(version) = browsers.safari { if version < 917504 { return false; } } if let Some(version) = browsers.opera { if version < 4915200 { return false; } } if let Some(version) = browsers.ios_saf { if version < 917504 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 983040 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssOptionalPseudo => { if let Some(version) = browsers.ie { if version < 655360 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 262144 { return false; } } if let Some(version) = browsers.chrome { if version < 983040 { return false; } } if let Some(version) = browsers.safari { if version < 327680 { return false; } } if let Some(version) = browsers.opera { if version < 983040 { return false; } } if let Some(version) = browsers.ios_saf { if version < 327680 { return false; } } if let Some(version) = browsers.android { if version < 131840 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } } Feature::CssPlaceholderShown => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3342336 { return false; } } if let Some(version) = browsers.chrome { if version < 3080192 { return false; } } if let Some(version) = browsers.safari { if version < 589824 { return false; } } if let Some(version) = browsers.opera { if version < 2228224 { return false; } } if let Some(version) = browsers.ios_saf { if version < 589824 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 327680 { return false; } } if browsers.ie.is_some() { return false; } } Feature::Dialog => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 6422528 { return false; } } if let Some(version) = browsers.chrome { if version < 2424832 { return false; } } if let Some(version) = browsers.safari { if version < 984064 { return false; } } if let Some(version) = browsers.opera { if version < 1572864 { return false; } } if let Some(version) = browsers.ios_saf { if version < 984064 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } if browsers.ie.is_some() { return false; } } Feature::Fullscreen => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 4194304 { return false; } } if let Some(version) = browsers.chrome { if version < 4653056 { return false; } } if let Some(version) = browsers.opera { if version < 786688 { return false; } } if let Some(version) = browsers.samsung { if version < 655616 { return false; } } if browsers.android.is_some() || browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() { return false; } } Feature::CssMarkerPseudo => { if let Some(version) = browsers.edge { if version < 5636096 { return false; } } if let Some(version) = browsers.firefox { if version < 4456448 { return false; } } if let Some(version) = browsers.chrome { if version < 5636096 { return false; } } if let Some(version) = browsers.opera { if version < 4718592 { return false; } } if let Some(version) = browsers.ios_saf { if version < 721664 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 917504 { return false; } } if browsers.ie.is_some() || browsers.safari.is_some() { return false; } } Feature::CssPlaceholder => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3342336 { return false; } } if let Some(version) = browsers.chrome { if version < 3735552 { return false; } } if let Some(version) = browsers.safari { if version < 655616 { return false; } } if let Some(version) = browsers.opera { if version < 2883584 { return false; } } if let Some(version) = browsers.ios_saf { if version < 656128 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 459264 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssSelection => { if let Some(version) = browsers.ie { if version < 589824 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 4063232 { return false; } } if let Some(version) = browsers.chrome { if version < 262144 { return false; } } if let Some(version) = browsers.safari { if version < 196864 { return false; } } if let Some(version) = browsers.opera { if version < 591104 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } if browsers.ios_saf.is_some() { return false; } } Feature::CssCaseInsensitive => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3080192 { return false; } } if let Some(version) = browsers.chrome { if version < 3211264 { return false; } } if let Some(version) = browsers.safari { if version < 589824 { return false; } } if let Some(version) = browsers.opera { if version < 2359296 { return false; } } if let Some(version) = browsers.ios_saf { if version < 589824 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 327680 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssReadOnlyWrite => { if let Some(version) = browsers.edge { if version < 851968 { return false; } } if let Some(version) = browsers.firefox { if version < 5111808 { return false; } } if let Some(version) = browsers.chrome { if version < 2359296 { return false; } } if let Some(version) = browsers.safari { if version < 589824 { return false; } } if let Some(version) = browsers.opera { if version < 1507328 { return false; } } if let Some(version) = browsers.ios_saf { if version < 589824 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssAutofill => { if let Some(version) = browsers.chrome { if version < 6291456 { return false; } } if let Some(version) = browsers.edge { if version < 6291456 { return false; } } if let Some(version) = browsers.firefox { if version < 5636096 { return false; } } if let Some(version) = browsers.opera { if version < 5373952 { return false; } } if let Some(version) = browsers.safari { if version < 983040 { return false; } } if let Some(version) = browsers.ios_saf { if version < 983040 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if browsers.ie.is_some() || browsers.samsung.is_some() { return false; } } Feature::CssNamespaces => { if let Some(version) = browsers.ie { if version < 589824 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 131072 { return false; } } if let Some(version) = browsers.chrome { if version < 262144 { return false; } } if let Some(version) = browsers.safari { if version < 262144 { return false; } } if let Some(version) = browsers.opera { if version < 589824 { return false; } } if let Some(version) = browsers.ios_saf { if version < 262656 { return false; } } if let Some(version) = browsers.android { if version < 131328 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } } Feature::Shadowdomv1 => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 4128768 { return false; } } if let Some(version) = browsers.chrome { if version < 3473408 { return false; } } if let Some(version) = browsers.safari { if version < 655360 { return false; } } if let Some(version) = browsers.opera { if version < 2621440 { return false; } } if let Some(version) = browsers.ios_saf { if version < 720896 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 393728 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssRrggbbaa => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3211264 { return false; } } if let Some(version) = browsers.chrome { if version < 4063232 { return false; } } if let Some(version) = browsers.safari { if version < 655360 { return false; } } if let Some(version) = browsers.opera { if version < 3407872 { return false; } } if let Some(version) = browsers.ios_saf { if version < 655360 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 524800 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssNesting | Feature::CustomMediaQueries | Feature::MediaIntervalSyntax | Feature::OklabColors => { return false } Feature::CssNotSelList => { if let Some(version) = browsers.edge { if version < 5767168 { return false; } } if let Some(version) = browsers.firefox { if version < 5505024 { return false; } } if let Some(version) = browsers.chrome { if version < 5767168 { return false; } } if let Some(version) = browsers.safari { if version < 589824 { return false; } } if let Some(version) = browsers.opera { if version < 4915200 { return false; } } if let Some(version) = browsers.ios_saf { if version < 589824 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 983040 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CssHas => { if let Some(version) = browsers.chrome { if version < 6881280 { return false; } } if let Some(version) = browsers.safari { if version < 984064 { return false; } } if let Some(version) = browsers.ios_saf { if version < 984064 { return false; } } if browsers.android.is_some() || browsers.edge.is_some() || browsers.firefox.is_some() || browsers.ie.is_some() || browsers.opera.is_some() || browsers.samsung.is_some() { return false; } } Feature::FontFamilySystemUi => { if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 6029312 { return false; } } if let Some(version) = browsers.chrome { if version < 3670016 { return false; } } if let Some(version) = browsers.safari { if version < 720896 { return false; } } if let Some(version) = browsers.opera { if version < 2818048 { return false; } } if let Some(version) = browsers.ios_saf { if version < 720896 { return false; } } if let Some(version) = browsers.android { if version < 6750208 { return false; } } if let Some(version) = browsers.samsung { if version < 393728 { return false; } } if browsers.ie.is_some() { return false; } } Feature::DoublePositionGradients => { if let Some(version) = browsers.chrome { if version < 4653056 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 4194304 { return false; } } if let Some(version) = browsers.opera { if version < 3276800 { return false; } } if let Some(version) = browsers.safari { if version < 786688 { return false; } } if let Some(version) = browsers.ios_saf { if version < 786944 { return false; } } if let Some(version) = browsers.samsung { if version < 655360 { return false; } } if let Some(version) = browsers.android { if version < 4653056 { return false; } } if browsers.ie.is_some() { return false; } } Feature::Clamp => { if let Some(version) = browsers.chrome { if version < 5177344 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 5177344 { return false; } } if let Some(version) = browsers.opera { if version < 3735552 { return false; } } if let Some(version) = browsers.safari { if version < 852224 { return false; } } if let Some(version) = browsers.ios_saf { if version < 852992 { return false; } } if let Some(version) = browsers.samsung { if version < 786432 { return false; } } if let Some(version) = browsers.android { if version < 5177344 { return false; } } if browsers.ie.is_some() { return false; } } Feature::PlaceSelf | Feature::PlaceItems => { if let Some(version) = browsers.chrome { if version < 3866624 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 2949120 { return false; } } if let Some(version) = browsers.opera { if version < 2818048 { return false; } } if let Some(version) = browsers.safari { if version < 720896 { return false; } } if let Some(version) = browsers.ios_saf { if version < 720896 { return false; } } if let Some(version) = browsers.samsung { if version < 458752 { return false; } } if let Some(version) = browsers.android { if version < 3866624 { return false; } } if browsers.ie.is_some() { return false; } } Feature::PlaceContent => { if let Some(version) = browsers.chrome { if version < 3866624 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 2949120 { return false; } } if let Some(version) = browsers.opera { if version < 2818048 { return false; } } if let Some(version) = browsers.safari { if version < 589824 { return false; } } if let Some(version) = browsers.ios_saf { if version < 589824 { return false; } } if let Some(version) = browsers.samsung { if version < 458752 { return false; } } if let Some(version) = browsers.android { if version < 3866624 { return false; } } if browsers.ie.is_some() { return false; } } Feature::OverflowShorthand => { if let Some(version) = browsers.chrome { if version < 4456448 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3997696 { return false; } } if let Some(version) = browsers.opera { if version < 3145728 { return false; } } if let Some(version) = browsers.samsung { if version < 655360 { return false; } } if let Some(version) = browsers.android { if version < 4456448 { return false; } } if browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() { return false; } } Feature::MediaRangeSyntax => { if let Some(version) = browsers.chrome { if version < 6815744 { return false; } } if let Some(version) = browsers.firefox { if version < 4128768 { return false; } } if let Some(version) = browsers.android { if version < 6815744 { return false; } } if browsers.edge.is_some() || browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.opera.is_some() || browsers.safari.is_some() || browsers.samsung.is_some() { return false; } } Feature::LogicalBorders => { if let Some(version) = browsers.chrome { if version < 4521984 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 2686976 { return false; } } if let Some(version) = browsers.opera { if version < 3145728 { return false; } } if let Some(version) = browsers.safari { if version < 786688 { return false; } } if let Some(version) = browsers.ios_saf { if version < 786944 { return false; } } if let Some(version) = browsers.samsung { if version < 655360 { return false; } } if let Some(version) = browsers.android { if version < 4521984 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LogicalBorderShorthand | Feature::LogicalMarginShorthand | Feature::LogicalPaddingShorthand => { if let Some(version) = browsers.chrome { if version < 5701632 { return false; } } if let Some(version) = browsers.edge { if version < 5701632 { return false; } } if let Some(version) = browsers.firefox { if version < 4325376 { return false; } } if let Some(version) = browsers.opera { if version < 4063232 { return false; } } if let Some(version) = browsers.safari { if version < 917760 { return false; } } if let Some(version) = browsers.ios_saf { if version < 918784 { return false; } } if let Some(version) = browsers.samsung { if version < 917504 { return false; } } if let Some(version) = browsers.android { if version < 5701632 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LogicalBorderRadius => { if let Some(version) = browsers.chrome { if version < 5832704 { return false; } } if let Some(version) = browsers.edge { if version < 5832704 { return false; } } if let Some(version) = browsers.firefox { if version < 4325376 { return false; } } if let Some(version) = browsers.opera { if version < 4915200 { return false; } } if let Some(version) = browsers.safari { if version < 983040 { return false; } } if let Some(version) = browsers.ios_saf { if version < 983040 { return false; } } if let Some(version) = browsers.samsung { if version < 983040 { return false; } } if let Some(version) = browsers.android { if version < 5832704 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LogicalMargin | Feature::LogicalPadding => { if let Some(version) = browsers.chrome { if version < 5701632 { return false; } } if let Some(version) = browsers.edge { if version < 5701632 { return false; } } if let Some(version) = browsers.firefox { if version < 2686976 { return false; } } if let Some(version) = browsers.opera { if version < 4063232 { return false; } } if let Some(version) = browsers.safari { if version < 786688 { return false; } } if let Some(version) = browsers.ios_saf { if version < 786944 { return false; } } if let Some(version) = browsers.samsung { if version < 917504 { return false; } } if let Some(version) = browsers.android { if version < 5701632 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LogicalInset => { if let Some(version) = browsers.chrome { if version < 5701632 { return false; } } if let Some(version) = browsers.edge { if version < 5701632 { return false; } } if let Some(version) = browsers.firefox { if version < 4128768 { return false; } } if let Some(version) = browsers.opera { if version < 4063232 { return false; } } if let Some(version) = browsers.safari { if version < 917760 { return false; } } if let Some(version) = browsers.ios_saf { if version < 918784 { return false; } } if let Some(version) = browsers.samsung { if version < 917504 { return false; } } if let Some(version) = browsers.android { if version < 5701632 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LogicalSize => { if let Some(version) = browsers.chrome { if version < 3735552 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 2686976 { return false; } } if let Some(version) = browsers.opera { if version < 2818048 { return false; } } if let Some(version) = browsers.safari { if version < 786688 { return false; } } if let Some(version) = browsers.ios_saf { if version < 786944 { return false; } } if let Some(version) = browsers.samsung { if version < 327680 { return false; } } if let Some(version) = browsers.android { if version < 3735552 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LogicalTextAlign => { if let Some(version) = browsers.chrome { if version < 1179648 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 262144 { return false; } } if let Some(version) = browsers.opera { if version < 917504 { return false; } } if let Some(version) = browsers.safari { if version < 196864 { return false; } } if let Some(version) = browsers.ios_saf { if version < 131072 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 2424832 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LabColors | Feature::ColorFunction => { if let Some(version) = browsers.safari { if version < 983040 { return false; } } if let Some(version) = browsers.ios_saf { if version < 983040 { return false; } } if browsers.android.is_some() || browsers.chrome.is_some() || browsers.edge.is_some() || browsers.firefox.is_some() || browsers.ie.is_some() || browsers.opera.is_some() || browsers.samsung.is_some() { return false; } } Feature::SpaceSeparatedColorFunction => { if let Some(version) = browsers.chrome { if version < 4259840 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3407872 { return false; } } if let Some(version) = browsers.opera { if version < 3080192 { return false; } } if let Some(version) = browsers.safari { if version < 786688 { return false; } } if let Some(version) = browsers.ios_saf { if version < 786944 { return false; } } if let Some(version) = browsers.samsung { if version < 589824 { return false; } } if let Some(version) = browsers.android { if version < 4259840 { return false; } } if browsers.ie.is_some() { return false; } } Feature::TextDecorationThicknessPercent => { if let Some(version) = browsers.firefox { if version < 4849664 { return false; } } if browsers.android.is_some() || browsers.chrome.is_some() || browsers.edge.is_some() || browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.opera.is_some() || browsers.safari.is_some() || browsers.samsung.is_some() { return false; } } Feature::TextDecorationThicknessShorthand => { if let Some(version) = browsers.chrome { if version < 5701632 { return false; } } if let Some(version) = browsers.edge { if version < 5701632 { return false; } } if let Some(version) = browsers.firefox { if version < 4587520 { return false; } } if let Some(version) = browsers.opera { if version < 4063232 { return false; } } if let Some(version) = browsers.samsung { if version < 917504 { return false; } } if let Some(version) = browsers.android { if version < 5701632 { return false; } } if browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() { return false; } } Feature::Cue => { if let Some(version) = browsers.chrome { if version < 1703936 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 3604480 { return false; } } if let Some(version) = browsers.opera { if version < 917504 { return false; } } if let Some(version) = browsers.safari { if version < 458752 { return false; } } if let Some(version) = browsers.ios_saf { if version < 458752 { return false; } } if let Some(version) = browsers.samsung { if version < 66816 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CueFunction => { if let Some(version) = browsers.chrome { if version < 1703936 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.opera { if version < 917504 { return false; } } if let Some(version) = browsers.safari { if version < 458752 { return false; } } if let Some(version) = browsers.ios_saf { if version < 458752 { return false; } } if let Some(version) = browsers.samsung { if version < 66816 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } if browsers.firefox.is_some() || browsers.ie.is_some() { return false; } } Feature::AnyPseudo => { if let Some(version) = browsers.chrome { if version < 1179648 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 262144 { return false; } } if let Some(version) = browsers.opera { if version < 917504 { return false; } } if let Some(version) = browsers.safari { if version < 327680 { return false; } } if let Some(version) = browsers.ios_saf { if version < 327680 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 2424832 { return false; } } if browsers.ie.is_some() { return false; } } Feature::ImageSet => { if let Some(version) = browsers.chrome { if version < 1638400 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 5767168 { return false; } } if let Some(version) = browsers.opera { if version < 917504 { return false; } } if let Some(version) = browsers.safari { if version < 393216 { return false; } } if let Some(version) = browsers.ios_saf { if version < 393216 { return false; } } if let Some(version) = browsers.samsung { if version < 66816 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } if browsers.ie.is_some() { return false; } } Feature::XResolutionUnit => { if let Some(version) = browsers.chrome { if version < 4456448 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 4063232 { return false; } } if let Some(version) = browsers.opera { if version < 3145728 { return false; } } if let Some(version) = browsers.samsung { if version < 655360 { return false; } } if let Some(version) = browsers.android { if version < 4456448 { return false; } } if browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() { return false; } } Feature::P3Colors | Feature::LangList => { if let Some(version) = browsers.safari { if version < 655616 { return false; } } if let Some(version) = browsers.ios_saf { if version < 656128 { return false; } } if browsers.android.is_some() || browsers.chrome.is_some() || browsers.edge.is_some() || browsers.firefox.is_some() || browsers.ie.is_some() || browsers.opera.is_some() || browsers.samsung.is_some() { return false; } } } true } pub fn is_partially_compatible(&self, targets: Browsers) -> bool { let mut browsers = Browsers::default(); if targets.android.is_some() { browsers.android = targets.android; if self.is_compatible(browsers) { return true; } browsers.android = None; } if targets.chrome.is_some() { browsers.chrome = targets.chrome; if self.is_compatible(browsers) { return true; } browsers.chrome = None; } if targets.edge.is_some() { browsers.edge = targets.edge; if self.is_compatible(browsers) { return true; } browsers.edge = None; } if targets.firefox.is_some() { browsers.firefox = targets.firefox; if self.is_compatible(browsers) { return true; } browsers.firefox = None; } if targets.ie.is_some() { browsers.ie = targets.ie; if self.is_compatible(browsers) { return true; } browsers.ie = None; } if targets.ios_saf.is_some() { browsers.ios_saf = targets.ios_saf; if self.is_compatible(browsers) { return true; } browsers.ios_saf = None; } if targets.opera.is_some() { browsers.opera = targets.opera; if self.is_compatible(browsers) { return true; } browsers.opera = None; } if targets.safari.is_some() { browsers.safari = targets.safari; if self.is_compatible(browsers) { return true; } browsers.safari = None; } if targets.samsung.is_some() { browsers.samsung = targets.samsung; if self.is_compatible(browsers) { return true; } browsers.samsung = None; } false } }