// This file is automatically generated from CSSProperties.json by the process-css-properties.py script. Do not edit it.

#pragma once

#include "CSSPropertyNames.h"
#include "CSSUnits.h"
#include "CSSValueKeywords.h"
#include <wtf/Variant.h>

namespace WebCore {

struct InitialNumericValue {
    double number;
    CSSUnitType type { CSSUnitType::CSS_NUMBER };
};

using InitialValue = Variant<CSSValueID, InitialNumericValue>;

static constexpr InitialValue initialValueForLonghand(CSSPropertyID longhand)
{
    switch (longhand) {
    case CSSPropertyID::CSSPropertyBackgroundCoordinatedValueListPropertyTestDiscrete:
    case CSSPropertyID::CSSPropertyBackgroundCoordinatedValueListPropertyTestTwo:
    case CSSPropertyID::CSSPropertyTestAnimationWrapper:
    case CSSPropertyID::CSSPropertyTestAnimationWrapperAccelerationAlways:
    case CSSPropertyID::CSSPropertyTestAnimationWrapperAccelerationThreadedOnly:
    case CSSPropertyID::CSSPropertyTestCustomExtractor:
    case CSSPropertyID::CSSPropertyTestHighPriority:
    case CSSPropertyID::CSSPropertyTestLogicalPropertyGroupPhysicalHorizontal:
    case CSSPropertyID::CSSPropertyTestLogicalPropertyGroupPhysicalVertical:
    case CSSPropertyID::CSSPropertyTestMatchOne:
    case CSSPropertyID::CSSPropertyTestMatchOneWithGroupWithSettingsFlag:
    case CSSPropertyID::CSSPropertyTestMatchOneWithKeywordWithSettingsFlag:
    case CSSPropertyID::CSSPropertyTestMatchOneWithMultipleKeywords:
    case CSSPropertyID::CSSPropertyTestMatchOneWithReferenceWithSettingsFlag:
    case CSSPropertyID::CSSPropertyTestMediumPriority:
    case CSSPropertyID::CSSPropertyTestNumericValueRange:
    case CSSPropertyID::CSSPropertyTestProperty:
    case CSSPropertyID::CSSPropertyTestRenderStyleHasExplicitlySetPolicyAllAuthorOrigin:
    case CSSPropertyID::CSSPropertyTestRenderStyleHasExplicitlySetPolicyAllBorderRadius:
    case CSSPropertyID::CSSPropertyTestRenderStyleHasExplicitlySetPolicyValueOnly:
    case CSSPropertyID::CSSPropertyTestRenderStyleStorageOneLevelReference:
    case CSSPropertyID::CSSPropertyTestRenderStyleStorageOneLevelValue:
    case CSSPropertyID::CSSPropertyTestRenderStyleStorageTwoLevelReference:
    case CSSPropertyID::CSSPropertyTestRenderStyleStorageTwoLevelValue:
    case CSSPropertyID::CSSPropertyTestSettingsOne:
    case CSSPropertyID::CSSPropertyTestSinkPriority:
    case CSSPropertyID::CSSPropertyTestTopPriority:
    case CSSPropertyID::CSSPropertyTestUsingSharedRule:
    case CSSPropertyID::CSSPropertyTestUsingSharedRuleExported:
    case CSSPropertyID::CSSPropertyTestUsingSharedRuleWithOverrideFunction:
        return InitialNumericValue { 0, CSSUnitType::CSS_NUMBER };
    case CSSPropertyID::CSSPropertyTestColor:
    case CSSPropertyID::CSSPropertyTestColorAllowsTypesAbsolute:
    case CSSPropertyID::CSSPropertyTestColorPropertyWithVisitedLinkSupport:
        return CSSValueCurrentColor;
    case CSSPropertyID::CSSPropertyTestKeyword:
    case CSSPropertyID::CSSPropertyTestKeywordWithAliasedTo:
    case CSSPropertyID::CSSPropertyTestRenderStyleStorageOneLevelEnum:
    case CSSPropertyID::CSSPropertyTestRenderStyleStorageOneLevelRaw:
    case CSSPropertyID::CSSPropertyTestRenderStyleStorageTwoLevelEnum:
    case CSSPropertyID::CSSPropertyTestRenderStyleStorageTwoLevelRaw:
        return CSSValueFoo;
    case CSSPropertyID::CSSPropertyTestMatchOneWithSettingsFlag:
    case CSSPropertyID::CSSPropertyTestUrlWithModifiers:
    case CSSPropertyID::CSSPropertyTestUrlWithNoModifiers:
        return CSSValueNone;
    default:
        RELEASE_ASSERT_NOT_REACHED();
    }
}
} // namespace WebCore

