from enum import IntEnum


class DISCCapability(IntEnum):
    """
    Class `DISCCapability` contains all possible variants of DISC capability.
    """
    Reserved = 0
    UFP_D_capable = 1
    DPF_D_capable = 2
    UFP_D_and_DPF_D = 3


class DISCDpSignaling(IntEnum):
    """
    Class `DISCDpSignaling` contains all possible variants of signaling.
    """
    Unspecified = 0
    Dp_v13 = 1
    Gen2 = 2


class PinAssignmentModes(IntEnum):
    """
    Class `PinAssignmentModes` contains all possible variants of pin assignment.
    """
    NotSupported = 0x00
    A_4_2lanes = 0x01
    B_2_1lanes = 0x02
    C_4lanes = 0x04
    D_2lanes = 0x08
    E_4lanes = 0x10
    F_2lanes_USB_GEN1 = 0x20


class DPAMVersion(IntEnum):
    """
    Class `PinAssignmentModes` contains all possible variants of DP Alt mode version.
    """
    V_20_or_Earlier = 0
    V_21_or_Higher = 1
    Reserved = 2
    Reserved2 = 3
