// This file is autogenerated by build-prefixes.js. DO NOT EDIT! use crate::targets::Browsers; #[allow(dead_code)] #[derive(Clone, Copy, PartialEq)] pub enum Feature { AbsFunction, AccentSystemColor, AfarListStyleType, AmharicAbegedeListStyleType, AmharicListStyleType, AnchorSizeSize, AnimationTimelineShorthand, AnyLink, AnyPseudo, ArabicIndicListStyleType, ArmenianListStyleType, AsterisksListStyleType, AutoSize, Autofill, BengaliListStyleType, BinaryListStyleType, BorderImageRepeatRound, BorderImageRepeatSpace, CalcFunction, CambodianListStyleType, CapUnit, CaseInsensitive, ChUnit, CircleListStyleType, CjkDecimalListStyleType, CjkEarthlyBranchListStyleType, CjkHeavenlyStemListStyleType, ClampFunction, ColorFunction, ConicGradient, ContainerQueryLengthUnits, Cue, CueFunction, CustomMediaQueries, DecimalLeadingZeroListStyleType, DecimalListStyleType, DefaultPseudo, DetailsContent, DevanagariListStyleType, Dialog, DirSelector, DiscListStyleType, DisclosureClosedListStyleType, DisclosureOpenListStyleType, DoublePositionGradients, EmUnit, EthiopicAbegedeAmEtListStyleType, EthiopicAbegedeGezListStyleType, EthiopicAbegedeListStyleType, EthiopicAbegedeTiErListStyleType, EthiopicAbegedeTiEtListStyleType, EthiopicHalehameAaErListStyleType, EthiopicHalehameAaEtListStyleType, EthiopicHalehameAmEtListStyleType, EthiopicHalehameGezListStyleType, EthiopicHalehameOmEtListStyleType, EthiopicHalehameSidEtListStyleType, EthiopicHalehameSoEtListStyleType, EthiopicHalehameTigListStyleType, EthiopicListStyleType, EthiopicNumericListStyleType, ExUnit, ExtendedSystemFonts, FirstLetter, FirstLine, FitContentFunctionSize, FitContentSize, FocusVisible, FocusWithin, FontFamilySystemUi, FontSizeRem, FontSizeXXXLarge, FontStretchPercentage, FontStyleObliqueAngle, FontWeightNumber, FootnotesListStyleType, FormValidation, Fullscreen, Gencontent, GeorgianListStyleType, GradientInterpolationHints, GujaratiListStyleType, GurmukhiListStyleType, HasSelector, HebrewListStyleType, HexAlphaColors, HiraganaIrohaListStyleType, HiraganaListStyleType, HypotFunction, IcUnit, ImageSet, InOutOfRange, IndeterminatePseudo, IsAnimatableSize, IsSelector, JapaneseFormalListStyleType, JapaneseInformalListStyleType, KannadaListStyleType, KatakanaIrohaListStyleType, KatakanaListStyleType, KhmerListStyleType, KoreanHangulFormalListStyleType, KoreanHanjaFormalListStyleType, KoreanHanjaInformalListStyleType, LabColors, LangSelectorList, LaoListStyleType, LhUnit, LightDark, LinearGradient, LogicalBorderRadius, LogicalBorderShorthand, LogicalBorders, LogicalInset, LogicalMargin, LogicalMarginShorthand, LogicalPadding, LogicalPaddingShorthand, LogicalSize, LogicalTextAlign, LowerAlphaListStyleType, LowerArmenianListStyleType, LowerGreekListStyleType, LowerHexadecimalListStyleType, LowerLatinListStyleType, LowerNorwegianListStyleType, LowerRomanListStyleType, MalayalamListStyleType, MarkerPseudo, MaxContentSize, MaxFunction, MediaIntervalSyntax, MediaRangeSyntax, MinContentSize, MinFunction, ModFunction, MongolianListStyleType, MozAvailableSize, MyanmarListStyleType, Namespaces, Nesting, NoneListStyleType, NotSelectorList, NthChildOf, OctalListStyleType, OklabColors, OptionalPseudo, OriyaListStyleType, OromoListStyleType, OverflowShorthand, P3Colors, PartPseudo, PersianListStyleType, PlaceContent, PlaceItems, PlaceSelf, Placeholder, PlaceholderShown, QUnit, RadialGradient, RcapUnit, RchUnit, ReadOnlyWrite, RemFunction, RemUnit, RepeatingConicGradient, RepeatingLinearGradient, RepeatingRadialGradient, RexUnit, RicUnit, RlhUnit, RoundFunction, Selection, Selectors2, Selectors3, Shadowdomv1, SidamaListStyleType, SignFunction, SimpChineseFormalListStyleType, SimpChineseInformalListStyleType, SomaliListStyleType, SpaceSeparatedColorNotation, SquareListStyleType, StretchSize, StringListStyleType, SymbolsListStyleType, TamilListStyleType, TargetText, TeluguListStyleType, TextDecorationThicknessPercent, TextDecorationThicknessShorthand, ThaiListStyleType, TibetanListStyleType, TigreListStyleType, TigrinyaErAbegedeListStyleType, TigrinyaErListStyleType, TigrinyaEtAbegedeListStyleType, TigrinyaEtListStyleType, TradChineseFormalListStyleType, TradChineseInformalListStyleType, UpperAlphaListStyleType, UpperArmenianListStyleType, UpperHexadecimalListStyleType, UpperLatinListStyleType, UpperNorwegianListStyleType, UpperRomanListStyleType, VbUnit, VhUnit, ViUnit, ViewTransition, ViewportPercentageUnitsDynamic, ViewportPercentageUnitsLarge, ViewportPercentageUnitsSmall, VmaxUnit, VminUnit, VwUnit, WebkitFillAvailableSize, XResolutionUnit, } impl Feature { pub fn is_compatible(&self, browsers: Browsers) -> bool { match self { Feature::Selectors2 => { 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::Selectors3 => { 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::Gencontent | Feature::FirstLine => { 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::FirstLetter => { 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::InOutOfRange => { 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 < 8716288 { 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::AnyLink => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 590336 { return false; } } if browsers.ie.is_some() { return false; } } Feature::DefaultPseudo => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 327680 { return false; } } if browsers.ie.is_some() { return false; } } Feature::DirSelector => { if let Some(version) = browsers.edge { if version < 7864320 { return false; } } if let Some(version) = browsers.firefox { if version < 3211264 { return false; } } if let Some(version) = browsers.chrome { if version < 7864320 { return false; } } if let Some(version) = browsers.safari { if version < 1049600 { return false; } } if let Some(version) = browsers.opera { if version < 6946816 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1049600 { return false; } } if let Some(version) = browsers.android { if version < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 1638400 { return false; } } if browsers.ie.is_some() { return false; } } Feature::FocusWithin => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 524800 { return false; } } if browsers.ie.is_some() { return false; } } Feature::FocusVisible => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 917504 { return false; } } if browsers.ie.is_some() { return false; } } Feature::IndeterminatePseudo => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } if browsers.ie.is_some() { return false; } } Feature::IsSelector => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 983040 { return false; } } if browsers.ie.is_some() { return false; } } Feature::OptionalPseudo => { 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::PlaceholderShown => { 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 < 8716288 { 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 < 8716288 { 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.safari { if version < 1049600 { 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() { return false; } } Feature::MarkerPseudo => { 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.android { if version < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 917504 { return false; } } if browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() { return false; } } Feature::Placeholder => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 459264 { return false; } } if browsers.ie.is_some() { return false; } } Feature::Selection => { 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::CaseInsensitive => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 327680 { return false; } } if browsers.ie.is_some() { return false; } } Feature::ReadOnlyWrite => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } if browsers.ie.is_some() { return false; } } Feature::Autofill => { if let Some(version) = browsers.chrome { if version < 7208960 { return false; } } if let Some(version) = browsers.edge { if version < 7208960 { return false; } } if let Some(version) = browsers.firefox { if version < 5636096 { return false; } } if let Some(version) = browsers.opera { if version < 6291456 { 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 < 1376256 { return false; } } if let Some(version) = browsers.android { if version < 8716288 { return false; } } if browsers.ie.is_some() { return false; } } Feature::Namespaces => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 393728 { return false; } } if browsers.ie.is_some() { return false; } } Feature::HexAlphaColors => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 524800 { return false; } } if browsers.ie.is_some() { return false; } } Feature::Nesting => { if let Some(version) = browsers.edge { if version < 7864320 { return false; } } if let Some(version) = browsers.firefox { if version < 7667712 { return false; } } if let Some(version) = browsers.chrome { if version < 7864320 { return false; } } if let Some(version) = browsers.safari { if version < 1114624 { return false; } } if let Some(version) = browsers.opera { if version < 6946816 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1114624 { return false; } } if let Some(version) = browsers.android { if version < 8716288 { return false; } } if browsers.ie.is_some() || browsers.samsung.is_some() { return false; } } Feature::NotSelectorList => { 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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 983040 { return false; } } if browsers.ie.is_some() { return false; } } Feature::HasSelector => { if let Some(version) = browsers.edge { if version < 6881280 { return false; } } if let Some(version) = browsers.firefox { if version < 7929856 { return false; } } 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.opera { if version < 5963776 { return false; } } if let Some(version) = browsers.ios_saf { if version < 984064 { return false; } } if let Some(version) = browsers.android { if version < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 1310720 { return false; } } if browsers.ie.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 < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 393728 { return false; } } if browsers.ie.is_some() { return false; } } Feature::ExtendedSystemFonts => { if let Some(version) = browsers.safari { if version < 852224 { return false; } } if let Some(version) = browsers.ios_saf { if version < 852992 { 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::CalcFunction => { if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 1048576 { return false; } } if let Some(version) = browsers.chrome { if version < 1703936 { return false; } } if let Some(version) = browsers.safari { if version < 393472 { return false; } } if let Some(version) = browsers.opera { if version < 983040 { return false; } } if let Some(version) = browsers.ios_saf { if version < 458752 { return false; } } if let Some(version) = browsers.android { if version < 8716288 { return false; } } if let Some(version) = browsers.samsung { if version < 262144 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CustomMediaQueries | Feature::FitContentFunctionSize | Feature::StretchSize => 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::ClampFunction => { 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.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 < 655360 { return false; } } if let Some(version) = browsers.android { if version < 4456448 { return false; } } if browsers.ie.is_some() { return false; } } Feature::MediaRangeSyntax => { if let Some(version) = browsers.chrome { if version < 6815744 { return false; } } if let Some(version) = browsers.edge { if version < 6815744 { return false; } } if let Some(version) = browsers.firefox { if version < 4128768 { return false; } } if let Some(version) = browsers.opera { if version < 4653056 { return false; } } if let Some(version) = browsers.safari { if version < 1049600 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1049600 { return false; } } if let Some(version) = browsers.samsung { if version < 1310720 { return false; } } if let Some(version) = browsers.android { if version < 6815744 { return false; } } if browsers.ie.is_some() { return false; } } Feature::MediaIntervalSyntax => { if let Some(version) = browsers.chrome { if version < 6815744 { return false; } } if let Some(version) = browsers.edge { if version < 6815744 { return false; } } if let Some(version) = browsers.firefox { if version < 6684672 { return false; } } if let Some(version) = browsers.opera { if version < 4653056 { return false; } } if let Some(version) = browsers.safari { if version < 1049600 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1049600 { return false; } } if let Some(version) = browsers.samsung { if version < 1310720 { return false; } } if let Some(version) = browsers.android { if version < 6815744 { return false; } } if browsers.ie.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 < 4128768 { 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 < 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 < 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 => { if let Some(version) = browsers.chrome { if version < 7274496 { return false; } } if let Some(version) = browsers.edge { if version < 7274496 { return false; } } if let Some(version) = browsers.firefox { if version < 7405568 { 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 < 1441792 { return false; } } if let Some(version) = browsers.android { if version < 7274496 { return false; } } if browsers.ie.is_some() { return false; } } Feature::OklabColors => { if let Some(version) = browsers.chrome { if version < 7274496 { return false; } } if let Some(version) = browsers.edge { if version < 7274496 { return false; } } if let Some(version) = browsers.firefox { if version < 7405568 { return false; } } if let Some(version) = browsers.opera { if version < 4915200 { 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 let Some(version) = browsers.samsung { if version < 1441792 { return false; } } if let Some(version) = browsers.android { if version < 7274496 { return false; } } if browsers.ie.is_some() { return false; } } Feature::ColorFunction => { if let Some(version) = browsers.chrome { if version < 7274496 { return false; } } if let Some(version) = browsers.edge { if version < 7274496 { return false; } } if let Some(version) = browsers.firefox { if version < 7405568 { return false; } } if let Some(version) = browsers.opera { if version < 4915200 { return false; } } if let Some(version) = browsers.safari { if version < 655616 { return false; } } if let Some(version) = browsers.ios_saf { if version < 656128 { return false; } } if let Some(version) = browsers.samsung { if version < 1441792 { return false; } } if let Some(version) = browsers.android { if version < 7274496 { return false; } } if browsers.ie.is_some() { return false; } } Feature::SpaceSeparatedColorNotation => { 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.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 < 5177344 { return false; } } if let Some(version) = browsers.opera { if version < 4063232 { return false; } } if let Some(version) = browsers.safari { if version < 1115136 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1115136 { 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::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 < 5177344 { 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::PartPseudo => { if let Some(version) = browsers.chrome { if version < 4784128 { 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 < 3407872 { 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 < 720896 { return false; } } if let Some(version) = browsers.android { if version < 4784128 { 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.safari { if version < 1048576 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1048576 { 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() { return false; } } Feature::NthChildOf => { if let Some(version) = browsers.chrome { if version < 7274496 { return false; } } if let Some(version) = browsers.edge { if version < 7274496 { return false; } } if let Some(version) = browsers.firefox { if version < 7405568 { return false; } } if let Some(version) = browsers.opera { if version < 4915200 { 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 < 1441792 { return false; } } if let Some(version) = browsers.android { if version < 7274496 { return false; } } if browsers.ie.is_some() { return false; } } Feature::MinFunction | Feature::MaxFunction => { 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 < 721152 { return false; } } if let Some(version) = browsers.ios_saf { if version < 721664 { 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::RoundFunction | Feature::RemFunction | Feature::ModFunction => { if let Some(version) = browsers.chrome { if version < 8192000 { return false; } } if let Some(version) = browsers.edge { if version < 8192000 { return false; } } if let Some(version) = browsers.firefox { if version < 7733248 { return false; } } if let Some(version) = browsers.opera { if version < 5439488 { 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 let Some(version) = browsers.samsung { if version < 1769472 { return false; } } if let Some(version) = browsers.android { if version < 8192000 { return false; } } if browsers.ie.is_some() { return false; } } Feature::AbsFunction | Feature::SignFunction => { if let Some(version) = browsers.chrome { if version < 8847360 { return false; } } if let Some(version) = browsers.edge { if version < 8847360 { return false; } } if let Some(version) = browsers.firefox { if version < 7733248 { 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 let Some(version) = browsers.android { if version < 8847360 { return false; } } if browsers.ie.is_some() || browsers.opera.is_some() || browsers.samsung.is_some() { return false; } } Feature::HypotFunction => { if let Some(version) = browsers.chrome { if version < 7864320 { return false; } } if let Some(version) = browsers.edge { if version < 7864320 { return false; } } if let Some(version) = browsers.firefox { if version < 7733248 { return false; } } if let Some(version) = browsers.opera { if version < 5242880 { 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 let Some(version) = browsers.samsung { if version < 1638400 { return false; } } if let Some(version) = browsers.android { if version < 7864320 { return false; } } if browsers.ie.is_some() { return false; } } Feature::GradientInterpolationHints => { if let Some(version) = browsers.chrome { if version < 2621440 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 2359296 { return false; } } if let Some(version) = browsers.opera { if version < 1769472 { 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 < 262144 { return false; } } if let Some(version) = browsers.android { if version < 2621440 { return false; } } if browsers.ie.is_some() { return false; } } Feature::BorderImageRepeatRound => { if let Some(version) = browsers.chrome { if version < 1966080 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 983040 { return false; } } if let Some(version) = browsers.ie { if version < 720896 { return false; } } if let Some(version) = browsers.opera { if version < 1179648 { return false; } } if let Some(version) = browsers.safari { if version < 590080 { return false; } } if let Some(version) = browsers.ios_saf { if version < 590592 { return false; } } if let Some(version) = browsers.samsung { if version < 131072 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } } Feature::BorderImageRepeatSpace => { if let Some(version) = browsers.chrome { if version < 3670016 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 3276800 { return false; } } if let Some(version) = browsers.ie { if version < 720896 { return false; } } if let Some(version) = browsers.opera { if version < 2818048 { return false; } } if let Some(version) = browsers.safari { if version < 590080 { return false; } } if let Some(version) = browsers.ios_saf { if version < 590592 { return false; } } if let Some(version) = browsers.samsung { if version < 393216 { return false; } } if let Some(version) = browsers.android { if version < 3670016 { return false; } } } Feature::FontSizeRem => { if let Some(version) = browsers.chrome { if version < 2752512 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 2031616 { return false; } } if let Some(version) = browsers.ie { if version < 589824 { return false; } } if let Some(version) = browsers.opera { if version < 1835008 { 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 < 262144 { return false; } } if let Some(version) = browsers.android { if version < 2752512 { return false; } } } Feature::FontSizeXXXLarge => { 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 < 1049600 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1049600 { 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::FontStyleObliqueAngle => { if let Some(version) = browsers.chrome { if version < 4063232 { 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 < 3014656 { return false; } } if let Some(version) = browsers.safari { if version < 721152 { return false; } } if let Some(version) = browsers.ios_saf { if version < 721664 { return false; } } if let Some(version) = browsers.samsung { if version < 524288 { return false; } } if let Some(version) = browsers.android { if version < 4063232 { return false; } } if browsers.ie.is_some() { return false; } } Feature::FontWeightNumber => { if let Some(version) = browsers.chrome { if version < 4063232 { return false; } } if let Some(version) = browsers.edge { if version < 1114112 { return false; } } if let Some(version) = browsers.firefox { if version < 3997696 { return false; } } if let Some(version) = browsers.opera { if version < 3014656 { 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 < 524288 { return false; } } if let Some(version) = browsers.android { if version < 4063232 { return false; } } if browsers.ie.is_some() { return false; } } Feature::FontStretchPercentage => { if let Some(version) = browsers.chrome { if version < 4063232 { return false; } } if let Some(version) = browsers.edge { if version < 1179648 { return false; } } if let Some(version) = browsers.firefox { if version < 3997696 { return false; } } if let Some(version) = browsers.opera { if version < 3014656 { return false; } } if let Some(version) = browsers.safari { if version < 721152 { return false; } } if let Some(version) = browsers.ios_saf { if version < 721664 { return false; } } if let Some(version) = browsers.samsung { if version < 524288 { return false; } } if let Some(version) = browsers.android { if version < 4063232 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LightDark => { if let Some(version) = browsers.chrome { if version < 8060928 { return false; } } if let Some(version) = browsers.edge { if version < 8060928 { return false; } } if let Some(version) = browsers.firefox { if version < 7864320 { return false; } } if let Some(version) = browsers.opera { if version < 5373952 { return false; } } if let Some(version) = browsers.safari { if version < 1115392 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1115392 { return false; } } if let Some(version) = browsers.samsung { if version < 1769472 { return false; } } if let Some(version) = browsers.android { if version < 8060928 { return false; } } if browsers.ie.is_some() { return false; } } Feature::AccentSystemColor => { if let Some(version) = browsers.firefox { if version < 6750208 { return false; } } if let Some(version) = browsers.safari { if version < 1049856 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1049856 { return false; } } if browsers.android.is_some() || browsers.chrome.is_some() || browsers.edge.is_some() || browsers.ie.is_some() || browsers.opera.is_some() || browsers.samsung.is_some() { return false; } } Feature::AnimationTimelineShorthand => { if let Some(version) = browsers.chrome { if version < 7536640 { return false; } } if let Some(version) = browsers.edge { if version < 7536640 { return false; } } if let Some(version) = browsers.opera { if version < 5046272 { return false; } } if let Some(version) = browsers.samsung { if version < 1507328 { return false; } } if let Some(version) = browsers.android { if version < 7536640 { return false; } } if browsers.firefox.is_some() || browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() { return false; } } Feature::ViewTransition => { if let Some(version) = browsers.chrome { if version < 7143424 { return false; } } if let Some(version) = browsers.edge { if version < 7143424 { return false; } } if let Some(version) = browsers.opera { if version < 4849664 { return false; } } if let Some(version) = browsers.safari { if version < 1179648 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1179648 { return false; } } if let Some(version) = browsers.samsung { if version < 1376256 { return false; } } if let Some(version) = browsers.android { if version < 7143424 { return false; } } if browsers.firefox.is_some() || browsers.ie.is_some() { return false; } } Feature::DetailsContent => { if let Some(version) = browsers.chrome { if version < 8585216 { return false; } } if let Some(version) = browsers.edge { if version < 8585216 { return false; } } if let Some(version) = browsers.opera { if version < 5701632 { return false; } } if let Some(version) = browsers.safari { if version < 1180672 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1180672 { return false; } } if let Some(version) = browsers.android { if version < 8585216 { return false; } } if browsers.firefox.is_some() || browsers.ie.is_some() || browsers.samsung.is_some() { return false; } } Feature::TargetText => { 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 < 8585216 { return false; } } if let Some(version) = browsers.opera { if version < 4128768 { return false; } } if let Some(version) = browsers.safari { if version < 1180160 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1180160 { 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::QUnit => { if let Some(version) = browsers.chrome { if version < 4128768 { return false; } } 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.opera { if version < 3014656 { 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 < 524288 { return false; } } if let Some(version) = browsers.android { if version < 4128768 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CapUnit => { if let Some(version) = browsers.chrome { if version < 7733248 { return false; } } if let Some(version) = browsers.edge { if version < 7733248 { return false; } } if let Some(version) = browsers.firefox { if version < 6356992 { return false; } } if let Some(version) = browsers.opera { if version < 5177344 { return false; } } if let Some(version) = browsers.safari { if version < 1114624 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1114624 { return false; } } if let Some(version) = browsers.samsung { if version < 1638400 { return false; } } if let Some(version) = browsers.android { if version < 7733248 { return false; } } if browsers.ie.is_some() { return false; } } Feature::ChUnit => { if let Some(version) = browsers.chrome { if version < 1769472 { 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.ie { if version < 589824 { return false; } } if let Some(version) = browsers.opera { if version < 983040 { 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; } } } Feature::ContainerQueryLengthUnits => { if let Some(version) = browsers.chrome { if version < 6881280 { return false; } } if let Some(version) = browsers.edge { if version < 6881280 { return false; } } if let Some(version) = browsers.firefox { if version < 7208960 { return false; } } if let Some(version) = browsers.opera { if version < 4718592 { return false; } } if let Some(version) = browsers.safari { if version < 1048576 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1048576 { return false; } } if let Some(version) = browsers.samsung { if version < 1310720 { return false; } } if let Some(version) = browsers.android { if version < 6881280 { return false; } } if browsers.ie.is_some() { return false; } } Feature::EmUnit => { if let Some(version) = browsers.chrome { if version < 1179648 { 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.ie { if version < 196608 { return false; } } if let Some(version) = browsers.opera { if version < 655616 { return false; } } if let Some(version) = browsers.safari { if version < 65536 { return false; } } if let Some(version) = browsers.ios_saf { if version < 65536 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 65536 { return false; } } } Feature::ExUnit | Feature::CircleListStyleType | Feature::DecimalListStyleType | Feature::DiscListStyleType | Feature::SquareListStyleType => { if let Some(version) = browsers.chrome { if version < 1179648 { 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.ie { if version < 262144 { return false; } } if let Some(version) = browsers.opera { if version < 655616 { return false; } } if let Some(version) = browsers.safari { if version < 65536 { return false; } } if let Some(version) = browsers.ios_saf { if version < 65536 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } } Feature::IcUnit => { if let Some(version) = browsers.chrome { if version < 6946816 { return false; } } if let Some(version) = browsers.edge { if version < 6946816 { return false; } } if let Some(version) = browsers.firefox { if version < 6356992 { return false; } } if let Some(version) = browsers.opera { if version < 4718592 { 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 let Some(version) = browsers.samsung { if version < 1310720 { return false; } } if let Some(version) = browsers.android { if version < 6946816 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LhUnit => { if let Some(version) = browsers.chrome { if version < 7143424 { return false; } } if let Some(version) = browsers.edge { if version < 7143424 { return false; } } if let Some(version) = browsers.firefox { if version < 7864320 { return false; } } if let Some(version) = browsers.opera { if version < 4849664 { return false; } } if let Some(version) = browsers.safari { if version < 1049600 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1049600 { return false; } } if let Some(version) = browsers.samsung { if version < 1376256 { return false; } } if let Some(version) = browsers.android { if version < 7143424 { return false; } } if browsers.ie.is_some() { return false; } } Feature::RcapUnit => { if let Some(version) = browsers.chrome { if version < 7733248 { return false; } } if let Some(version) = browsers.edge { if version < 7733248 { return false; } } if let Some(version) = browsers.opera { if version < 5177344 { return false; } } if let Some(version) = browsers.safari { if version < 1114624 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1114624 { return false; } } if let Some(version) = browsers.samsung { if version < 1638400 { return false; } } if let Some(version) = browsers.android { if version < 7733248 { return false; } } if browsers.firefox.is_some() || browsers.ie.is_some() { return false; } } Feature::RchUnit | Feature::RexUnit | Feature::RicUnit => { if let Some(version) = browsers.chrome { if version < 7274496 { return false; } } if let Some(version) = browsers.edge { if version < 7274496 { return false; } } if let Some(version) = browsers.opera { if version < 4915200 { return false; } } if let Some(version) = browsers.safari { if version < 1114624 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1114624 { return false; } } if let Some(version) = browsers.samsung { if version < 1441792 { return false; } } if let Some(version) = browsers.android { if version < 7274496 { return false; } } if browsers.firefox.is_some() || browsers.ie.is_some() { return false; } } Feature::RemUnit => { if let Some(version) = browsers.chrome { if version < 1179648 { 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.ie { if version < 589824 { return false; } } if let Some(version) = browsers.opera { if version < 786432 { return false; } } if let Some(version) = browsers.safari { if version < 327680 { return false; } } if let Some(version) = browsers.ios_saf { if version < 262144 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 131072 { return false; } } } Feature::RlhUnit => { if let Some(version) = browsers.chrome { if version < 7274496 { return false; } } if let Some(version) = browsers.edge { if version < 7274496 { return false; } } if let Some(version) = browsers.firefox { if version < 7864320 { return false; } } if let Some(version) = browsers.opera { if version < 4915200 { return false; } } if let Some(version) = browsers.safari { if version < 1049600 { return false; } } if let Some(version) = browsers.ios_saf { if version < 1049600 { return false; } } if let Some(version) = browsers.samsung { if version < 1441792 { return false; } } if let Some(version) = browsers.android { if version < 7274496 { return false; } } if browsers.ie.is_some() { return false; } } Feature::VbUnit | Feature::ViUnit | Feature::ViewportPercentageUnitsDynamic | Feature::ViewportPercentageUnitsLarge | Feature::ViewportPercentageUnitsSmall => { if let Some(version) = browsers.chrome { if version < 7077888 { return false; } } if let Some(version) = browsers.edge { if version < 7077888 { return false; } } if let Some(version) = browsers.firefox { if version < 6619136 { return false; } } if let Some(version) = browsers.opera { if version < 4784128 { 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 let Some(version) = browsers.samsung { if version < 1376256 { return false; } } if let Some(version) = browsers.android { if version < 7077888 { return false; } } if browsers.ie.is_some() { return false; } } Feature::VhUnit | Feature::VwUnit => { if let Some(version) = browsers.chrome { if version < 1638400 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 1245184 { return false; } } if let Some(version) = browsers.ie { if version < 589824 { 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; } } } Feature::VmaxUnit => { if let Some(version) = browsers.chrome { if version < 1703936 { return false; } } if let Some(version) = browsers.edge { if version < 1048576 { return false; } } if let Some(version) = browsers.firefox { if version < 1245184 { 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 < 66816 { return false; } } if browsers.ie.is_some() { return false; } } Feature::VminUnit => { if let Some(version) = browsers.chrome { if version < 1703936 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 1245184 { return false; } } if let Some(version) = browsers.ie { if version < 655360 { 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; } } } Feature::ConicGradient | Feature::RepeatingConicGradient => { 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 < 5439488 { 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::LinearGradient | Feature::RepeatingLinearGradient => { if let Some(version) = browsers.chrome { if version < 1179648 { 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.ie { if version < 655360 { return false; } } if let Some(version) = browsers.opera { if version < 720896 { return false; } } if let Some(version) = browsers.safari { if version < 327936 { 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; } } } Feature::RadialGradient => { if let Some(version) = browsers.chrome { if version < 1179648 { 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.ie { if version < 655360 { return false; } } if let Some(version) = browsers.opera { if version < 786432 { return false; } } if let Some(version) = browsers.safari { if version < 327936 { 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; } } } Feature::RepeatingRadialGradient => { if let Some(version) = browsers.chrome { if version < 1179648 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 655360 { return false; } } if let Some(version) = browsers.ie { if version < 655360 { return false; } } if let Some(version) = browsers.opera { if version < 786432 { return false; } } if let Some(version) = browsers.safari { if version < 327936 { 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 < 263168 { return false; } } } Feature::AfarListStyleType | Feature::AmharicListStyleType | Feature::AmharicAbegedeListStyleType | Feature::EthiopicListStyleType | Feature::EthiopicAbegedeListStyleType | Feature::EthiopicAbegedeAmEtListStyleType | Feature::EthiopicAbegedeGezListStyleType | Feature::EthiopicAbegedeTiErListStyleType | Feature::EthiopicAbegedeTiEtListStyleType | Feature::EthiopicHalehameAaErListStyleType | Feature::EthiopicHalehameAaEtListStyleType | Feature::EthiopicHalehameAmEtListStyleType | Feature::EthiopicHalehameGezListStyleType | Feature::EthiopicHalehameOmEtListStyleType | Feature::EthiopicHalehameSidEtListStyleType | Feature::EthiopicHalehameSoEtListStyleType | Feature::EthiopicHalehameTigListStyleType | Feature::LowerHexadecimalListStyleType | Feature::LowerNorwegianListStyleType | Feature::UpperHexadecimalListStyleType | Feature::UpperNorwegianListStyleType => { if let Some(version) = browsers.chrome { if version < 1179648 { return false; } } if let Some(version) = browsers.edge { if version < 5963776 { 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 < 262656 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 196608 { return false; } } if browsers.firefox.is_some() || browsers.ie.is_some() { return false; } } Feature::ArabicIndicListStyleType | Feature::BengaliListStyleType | Feature::CjkEarthlyBranchListStyleType | Feature::CjkHeavenlyStemListStyleType | Feature::DevanagariListStyleType | Feature::GujaratiListStyleType | Feature::GurmukhiListStyleType | Feature::KannadaListStyleType | Feature::KhmerListStyleType | Feature::LaoListStyleType | Feature::MalayalamListStyleType | Feature::MyanmarListStyleType | Feature::OriyaListStyleType | Feature::PersianListStyleType | Feature::TeluguListStyleType | Feature::ThaiListStyleType => { 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 < 262656 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } if browsers.ie.is_some() { return false; } } Feature::ArmenianListStyleType | Feature::DecimalLeadingZeroListStyleType | Feature::GeorgianListStyleType | Feature::LowerAlphaListStyleType | Feature::LowerGreekListStyleType | Feature::LowerRomanListStyleType | Feature::UpperAlphaListStyleType | Feature::UpperLatinListStyleType | Feature::UpperRomanListStyleType => { if let Some(version) = browsers.chrome { if version < 1179648 { 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.ie { if version < 524288 { return false; } } if let Some(version) = browsers.opera { if version < 655616 { return false; } } if let Some(version) = browsers.safari { if version < 65536 { return false; } } if let Some(version) = browsers.ios_saf { if version < 65536 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } } Feature::AsterisksListStyleType | Feature::FootnotesListStyleType => { if let Some(version) = browsers.chrome { if version < 1179648 { return false; } } if let Some(version) = browsers.edge { if version < 5963776 { return false; } } if let Some(version) = browsers.opera { if version < 917504 { return false; } } if let Some(version) = browsers.safari { if version < 327936 { 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 < 263168 { return false; } } if browsers.firefox.is_some() || browsers.ie.is_some() { return false; } } Feature::BinaryListStyleType | Feature::OctalListStyleType | Feature::OromoListStyleType | Feature::SidamaListStyleType | Feature::SomaliListStyleType | Feature::TigreListStyleType | Feature::TigrinyaErListStyleType | Feature::TigrinyaErAbegedeListStyleType | Feature::TigrinyaEtListStyleType | Feature::TigrinyaEtAbegedeListStyleType => { if let Some(version) = browsers.chrome { if version < 1179648 { return false; } } if let Some(version) = browsers.edge { if version < 5963776 { 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 < 262656 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { 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::CambodianListStyleType | Feature::MongolianListStyleType | Feature::TibetanListStyleType => { 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 < 2162688 { 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 < 262656 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } if browsers.ie.is_some() { return false; } } Feature::CjkDecimalListStyleType => { if let Some(version) = browsers.chrome { if version < 5963776 { return false; } } if let Some(version) = browsers.edge { if version < 5963776 { return false; } } if let Some(version) = browsers.firefox { if version < 1835008 { return false; } } if let Some(version) = browsers.opera { if version < 4194304 { 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 < 1048576 { return false; } } if let Some(version) = browsers.android { if version < 5963776 { return false; } } if browsers.ie.is_some() { return false; } } Feature::DisclosureClosedListStyleType | Feature::DisclosureOpenListStyleType => { 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 < 2162688 { return false; } } if let Some(version) = browsers.opera { if version < 4128768 { 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::EthiopicNumericListStyleType | Feature::JapaneseFormalListStyleType | Feature::JapaneseInformalListStyleType | Feature::TamilListStyleType => { if let Some(version) = browsers.chrome { if version < 5963776 { return false; } } if let Some(version) = browsers.edge { if version < 5963776 { return false; } } if let Some(version) = browsers.firefox { if version < 262144 { return false; } } if let Some(version) = browsers.opera { if version < 4194304 { 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 < 1048576 { return false; } } if let Some(version) = browsers.android { if version < 5963776 { return false; } } if browsers.ie.is_some() { return false; } } Feature::HebrewListStyleType | Feature::HiraganaListStyleType | Feature::HiraganaIrohaListStyleType | Feature::KatakanaListStyleType | Feature::KatakanaIrohaListStyleType | Feature::AutoSize => { if let Some(version) = browsers.chrome { if version < 1179648 { 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.ie { if version < 720896 { return false; } } if let Some(version) = browsers.opera { if version < 917504 { return false; } } if let Some(version) = browsers.safari { if version < 65536 { return false; } } if let Some(version) = browsers.ios_saf { if version < 65536 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } } Feature::KoreanHangulFormalListStyleType | Feature::KoreanHanjaFormalListStyleType | Feature::KoreanHanjaInformalListStyleType => { if let Some(version) = browsers.chrome { if version < 2949120 { return false; } } if let Some(version) = browsers.edge { if version < 5177344 { return false; } } if let Some(version) = browsers.firefox { if version < 1835008 { return false; } } if let Some(version) = browsers.opera { if version < 2097152 { 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 < 327680 { return false; } } if let Some(version) = browsers.android { if version < 2949120 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LowerArmenianListStyleType | Feature::UpperArmenianListStyleType => { 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 < 2162688 { return false; } } if let Some(version) = browsers.opera { if version < 917504 { return false; } } if let Some(version) = browsers.safari { if version < 327936 { 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 < 263168 { return false; } } if browsers.ie.is_some() { return false; } } Feature::LowerLatinListStyleType => { if let Some(version) = browsers.chrome { if version < 1179648 { 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.ie { if version < 524288 { return false; } } if let Some(version) = browsers.opera { if version < 655616 { return false; } } if let Some(version) = browsers.safari { if version < 65536 { return false; } } if let Some(version) = browsers.ios_saf { if version < 65536 { return false; } } if let Some(version) = browsers.samsung { if version < 327680 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } } Feature::NoneListStyleType => { if let Some(version) = browsers.chrome { if version < 1179648 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 5177344 { return false; } } if let Some(version) = browsers.ie { if version < 720896 { return false; } } if let Some(version) = browsers.opera { if version < 917504 { return false; } } if let Some(version) = browsers.safari { if version < 65536 { return false; } } if let Some(version) = browsers.ios_saf { if version < 65536 { return false; } } if let Some(version) = browsers.samsung { if version < 65536 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } } Feature::SimpChineseFormalListStyleType | Feature::SimpChineseInformalListStyleType | Feature::TradChineseFormalListStyleType | Feature::TradChineseInformalListStyleType => { if let Some(version) = browsers.chrome { if version < 2949120 { 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 < 2097152 { 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 < 327680 { return false; } } if let Some(version) = browsers.android { if version < 2949120 { return false; } } if browsers.ie.is_some() { return false; } } Feature::StringListStyleType => { 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 < 2555904 { return false; } } if let Some(version) = browsers.opera { if version < 3735552 { 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 < 786432 { return false; } } if let Some(version) = browsers.android { if version < 5177344 { return false; } } if browsers.ie.is_some() { return false; } } Feature::SymbolsListStyleType => { if let Some(version) = browsers.firefox { if version < 2293760 { 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::AnchorSizeSize => { if let Some(version) = browsers.chrome { if version < 8192000 { return false; } } if let Some(version) = browsers.edge { if version < 8192000 { return false; } } if let Some(version) = browsers.opera { if version < 5439488 { return false; } } if let Some(version) = browsers.samsung { if version < 1769472 { return false; } } if let Some(version) = browsers.android { if version < 8192000 { return false; } } if browsers.firefox.is_some() || browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() { return false; } } Feature::FitContentSize => { 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 < 262144 { 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::IsAnimatableSize => { if let Some(version) = browsers.chrome { if version < 1703936 { return false; } } if let Some(version) = browsers.edge { if version < 786432 { return false; } } if let Some(version) = browsers.firefox { if version < 1048576 { return false; } } if let Some(version) = browsers.ie { if version < 720896 { 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; } } } Feature::MaxContentSize => { 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 < 262144 { 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 < 66816 { return false; } } if let Some(version) = browsers.android { if version < 263168 { return false; } } if browsers.ie.is_some() { return false; } } Feature::MinContentSize => { if let Some(version) = browsers.chrome { if version < 3014656 { 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 < 2162688 { 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 < 327680 { return false; } } if let Some(version) = browsers.android { if version < 3014656 { return false; } } if browsers.ie.is_some() { return false; } } Feature::WebkitFillAvailableSize => { 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.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 < 327680 { 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::MozAvailableSize => { if let Some(version) = browsers.firefox { if version < 262144 { 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::P3Colors | Feature::LangSelectorList => { 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 } }