use crate::targets::Browsers;
#[derive(Clone, Copy, PartialEq)]
pub enum Feature {
AbsFunction,
AnyLink,
AnyPseudo,
ArabicIndicListStyleType,
ArmenianListStyleType,
Autofill,
BengaliListStyleType,
BorderImageRepeatRound,
BorderImageRepeatSpace,
CalcFunction,
CambodianListStyleType,
CapUnit,
CaseInsensitive,
ChUnit,
CircleListStyleType,
CjkDecimalListStyleType,
CjkEarthlyBranchListStyleType,
CjkHeavenlyStemListStyleType,
ClampFunction,
ColorFunction,
ConicGradient,
ContainerQueryLengthUnits,
Cue,
CueFunction,
CustomMediaQueries,
DecimalLeadingZeroListStyleType,
DecimalListStyleType,
DefaultPseudo,
DevanagariListStyleType,
Dialog,
DirSelector,
DiscListStyleType,
DisclosureClosedListStyleType,
DisclosureOpenListStyleType,
DoublePositionGradients,
EthiopicNumericListStyleType,
ExUnit,
ExtendedSystemFonts,
FillSize,
FirstLetter,
FirstLine,
FitContentFunctionSize,
FitContentSize,
FocusVisible,
FocusWithin,
FontFamilySystemUi,
FontSizeRem,
FontSizeXXXLarge,
FontStretchPercentage,
FontStyleObliqueAngle,
FontWeightNumber,
FormValidation,
Fullscreen,
Gencontent,
GeorgianListStyleType,
GradientInterpolationHints,
GujaratiListStyleType,
GurmukhiListStyleType,
HasSelector,
HebrewListStyleType,
HexAlphaColors,
HiraganaIrohaListStyleType,
HiraganaListStyleType,
HypotFunction,
IcUnit,
ImageSet,
InOutOfRange,
IndeterminatePseudo,
IsSelector,
JapaneseFormalListStyleType,
JapaneseInformalListStyleType,
KannadaListStyleType,
KatakanaIrohaListStyleType,
KatakanaListStyleType,
KhmerListStyleType,
KoreanHangulFormalListStyleType,
KoreanHanjaFormalListStyleType,
KoreanHanjaInformalListStyleType,
LabColors,
LangSelectorList,
LaoListStyleType,
LhUnit,
LinearGradient,
LogicalBorderRadius,
LogicalBorderShorthand,
LogicalBorders,
LogicalInset,
LogicalMargin,
LogicalMarginShorthand,
LogicalPadding,
LogicalPaddingShorthand,
LogicalSize,
LogicalTextAlign,
LowerAlphaListStyleType,
LowerArmenianListStyleType,
LowerGreekListStyleType,
LowerLatinListStyleType,
LowerRomanListStyleType,
MalayalamListStyleType,
MarkerPseudo,
MaxContentSize,
MaxFunction,
MediaIntervalSyntax,
MediaRangeSyntax,
MinContentSize,
MinFunction,
ModFunction,
MongolianListStyleType,
MyanmarListStyleType,
Namespaces,
Nesting,
NotSelectorList,
NthChildOf,
OklabColors,
OptionalPseudo,
OriyaListStyleType,
OverflowShorthand,
P3Colors,
PartPseudo,
PersianListStyleType,
PlaceContent,
PlaceItems,
PlaceSelf,
Placeholder,
PlaceholderShown,
QUnit,
RadialGradient,
ReadOnlyWrite,
RemFunction,
RemUnit,
RepeatingConicGradient,
RepeatingLinearGradient,
RepeatingRadialGradient,
RlhUnit,
RoundFunction,
Selection,
Selectors2,
Selectors3,
Shadowdomv1,
SignFunction,
SimpChineseFormalListStyleType,
SimpChineseInformalListStyleType,
SpaceSeparatedColorNotation,
SquareListStyleType,
StretchSize,
StringListStyleType,
SymbolsListStyleType,
TamilListStyleType,
TeluguListStyleType,
TextDecorationThicknessPercent,
TextDecorationThicknessShorthand,
ThaiListStyleType,
TibetanListStyleType,
TradChineseFormalListStyleType,
TradChineseInformalListStyleType,
UpperAlphaListStyleType,
UpperArmenianListStyleType,
UpperLatinListStyleType,
UpperRomanListStyleType,
VbUnit,
VhUnit,
ViUnit,
ViewportPercentageUnitsDynamic,
ViewportPercentageUnitsLarge,
ViewportPercentageUnitsSmall,
VmaxUnit,
VminUnit,
VwUnit,
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 < 7340032 {
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 < 7340032 {
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 < 7340032 {
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.firefox {
if version < 3211264 {
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 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::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 < 7340032 {
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 < 7340032 {
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 < 7340032 {
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 < 7340032 {
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 < 7340032 {
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 < 7340032 {
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.safari {
if version < 721152 {
return false;
}
}
if let Some(version) = browsers.opera {
if version < 4718592 {
return false;
}
}
if let Some(version) = browsers.ios_saf {
if version < 721664 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 7340032 {
return false;
}
}
if let Some(version) = browsers.samsung {
if version < 917504 {
return false;
}
}
if browsers.ie.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 < 7340032 {
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 < 7340032 {
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 < 7340032 {
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.firefox {
if version < 5636096 {
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 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::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 < 7340032 {
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 < 7340032 {
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 < 7340032 {
return false;
}
}
if let Some(version) = browsers.chrome {
if version < 7340032 {
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 let Some(version) = browsers.android {
if version < 7340032 {
return false;
}
}
if browsers.firefox.is_some()
|| browsers.ie.is_some()
|| browsers.opera.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 < 7340032 {
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.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 < 7340032 {
return false;
}
}
if let Some(version) = browsers.samsung {
if version < 1310720 {
return false;
}
}
if browsers.firefox.is_some() || 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 < 7340032 {
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 < 7340032 {
return false;
}
}
if let Some(version) = browsers.samsung {
if version < 262144 {
return false;
}
}
if browsers.ie.is_some() {
return false;
}
}
Feature::CustomMediaQueries | Feature::RlhUnit | 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.samsung {
if version < 655360 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 4456448 {
return false;
}
}
if browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() {
return false;
}
}
Feature::MediaRangeSyntax => {
if let Some(version) = browsers.chrome {
if version < 6815744 {
return false;
}
}
if let Some(version) = browsers.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 < 5701632 {
return false;
}
}
if let Some(version) = browsers.edge {
if version < 5701632 {
return false;
}
}
if let Some(version) = browsers.firefox {
if version < 2686976 {
return false;
}
}
if let Some(version) = browsers.opera {
if version < 4063232 {
return false;
}
}
if let Some(version) = browsers.safari {
if version < 786688 {
return false;
}
}
if let Some(version) = browsers.ios_saf {
if version < 786944 {
return false;
}
}
if let Some(version) = browsers.samsung {
if version < 917504 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 5701632 {
return false;
}
}
if browsers.ie.is_some() {
return false;
}
}
Feature::LogicalInset => {
if let Some(version) = browsers.chrome {
if version < 5701632 {
return false;
}
}
if let Some(version) = browsers.edge {
if version < 5701632 {
return false;
}
}
if let Some(version) = browsers.firefox {
if version < 4128768 {
return false;
}
}
if let Some(version) = browsers.opera {
if version < 4063232 {
return false;
}
}
if let Some(version) = browsers.safari {
if version < 917760 {
return false;
}
}
if let Some(version) = browsers.ios_saf {
if version < 918784 {
return false;
}
}
if let Some(version) = browsers.samsung {
if version < 917504 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 5701632 {
return false;
}
}
if browsers.ie.is_some() {
return false;
}
}
Feature::LogicalSize => {
if let Some(version) = browsers.chrome {
if version < 3735552 {
return false;
}
}
if let Some(version) = browsers.edge {
if version < 5177344 {
return false;
}
}
if let Some(version) = browsers.firefox {
if version < 2686976 {
return false;
}
}
if let Some(version) = browsers.opera {
if version < 2818048 {
return false;
}
}
if let Some(version) = browsers.safari {
if version < 786688 {
return false;
}
}
if let Some(version) = browsers.ios_saf {
if version < 786944 {
return false;
}
}
if let Some(version) = browsers.samsung {
if version < 327680 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 3735552 {
return false;
}
}
if browsers.ie.is_some() {
return false;
}
}
Feature::LogicalTextAlign => {
if let Some(version) = browsers.chrome {
if version < 1179648 {
return false;
}
}
if let Some(version) = browsers.edge {
if version < 5177344 {
return false;
}
}
if let Some(version) = browsers.firefox {
if version < 262144 {
return false;
}
}
if let Some(version) = browsers.opera {
if version < 917504 {
return false;
}
}
if let Some(version) = browsers.safari {
if version < 196864 {
return false;
}
}
if let Some(version) = browsers.ios_saf {
if version < 131072 {
return false;
}
}
if let Some(version) = browsers.samsung {
if version < 65536 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 2424832 {
return false;
}
}
if browsers.ie.is_some() {
return false;
}
}
Feature::LabColors => {
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 < 6356992 {
return false;
}
}
if let Some(version) = browsers.safari {
if version < 983040 {
return false;
}
}
if let Some(version) = browsers.ios_saf {
if version < 983040 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 7274496 {
return false;
}
}
if browsers.firefox.is_some() || browsers.ie.is_some() || browsers.samsung.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.opera {
if version < 6356992 {
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 < 7274496 {
return false;
}
}
if browsers.firefox.is_some() || browsers.ie.is_some() || browsers.samsung.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.opera {
if version < 6356992 {
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.android {
if version < 7274496 {
return false;
}
}
if browsers.firefox.is_some() || browsers.ie.is_some() || browsers.samsung.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.firefox {
if version < 4849664 {
return false;
}
}
if browsers.android.is_some()
|| browsers.chrome.is_some()
|| browsers.edge.is_some()
|| browsers.ie.is_some()
|| browsers.ios_saf.is_some()
|| browsers.opera.is_some()
|| browsers.safari.is_some()
|| browsers.samsung.is_some()
{
return false;
}
}
Feature::TextDecorationThicknessShorthand => {
if let Some(version) = browsers.chrome {
if version < 5701632 {
return false;
}
}
if let Some(version) = browsers.edge {
if version < 5701632 {
return false;
}
}
if let Some(version) = browsers.firefox {
if version < 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.samsung {
if version < 655360 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 4456448 {
return false;
}
}
if browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() {
return false;
}
}
Feature::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.opera {
if version < 6356992 {
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.android {
if version < 7274496 {
return false;
}
}
if browsers.firefox.is_some() || browsers.ie.is_some() || browsers.samsung.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
| Feature::AbsFunction
| Feature::SignFunction
| Feature::HypotFunction => {
if let Some(version) = browsers.safari {
if version < 984064 {
return false;
}
}
if let Some(version) = browsers.ios_saf {
if version < 984064 {
return false;
}
}
if browsers.android.is_some()
|| browsers.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::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 < 2424832 {
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 < 262144 {
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 < 4587520 {
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() || browsers.opera.is_some() {
return false;
}
}
Feature::FontStyleObliqueAngle => {
if let Some(version) = browsers.firefox {
if version < 3997696 {
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::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::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.samsung {
if version < 524288 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 4128768 {
return false;
}
}
if browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() {
return false;
}
}
Feature::CapUnit => {
if let Some(version) = browsers.firefox {
if version < 6356992 {
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::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::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.opera {
if version < 4849664 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 7143424 {
return false;
}
}
if browsers.firefox.is_some()
|| browsers.ie.is_some()
|| browsers.ios_saf.is_some()
|| browsers.safari.is_some()
|| browsers.samsung.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::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.android {
if version < 7077888 {
return false;
}
}
if browsers.ie.is_some() || browsers.samsung.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::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::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.firefox {
if version < 1835008 {
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::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 => {
if let Some(version) = browsers.firefox {
if version < 262144 {
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 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::HebrewListStyleType
| Feature::HiraganaListStyleType
| Feature::HiraganaIrohaListStyleType
| Feature::KatakanaListStyleType
| Feature::KatakanaIrohaListStyleType => {
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 < 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;
}
}
if browsers.ie.is_some() {
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::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 < 4325376 {
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::TamilListStyleType => {
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::FillSize => {
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.opera {
if version < 2162688 {
return false;
}
}
if let Some(version) = browsers.safari {
if version < 786432 {
return false;
}
}
if let Some(version) = browsers.ios_saf {
if version < 786432 {
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.firefox.is_some() || browsers.ie.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::MaxContentSize => {
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 < 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 < 327680 {
return false;
}
}
if let Some(version) = browsers.android {
if version < 3014656 {
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::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
}
}