from enum import IntEnum


class FECCounters:
    """
    Class `FECCounters` possible errors:
    - Uncorrected block errors.
    - Corrected block errors.
    - Bit errors.
    - Parity block errors.
    - Parity bit errors.
    """
    def __init__(self):
        self.uncorrectedBlockErrors = [None, None, None, None, None]
        self.correctedBlockErrors = [None, None, None, None, None]
        self.bitErrors = [None, None, None, None, None]
        self.parityBlockErrors = [None, None, None, None, None]
        self.parityBitErrors = [None, None, None, None, None]


class FECErrorType8b10b(IntEnum):
    """
    Describes possible FEC 8b/10b errors.
    """
    UNCORRECTED_BLOCK = 0
    CORRECTED_BLOCK = 1
    CORRECTED_PARITY = 2
    CORRECTED_BLOCK_1 = 3
    CORRECTED_PARITY_1 = 4


class FECErrorType128b132b(IntEnum):
    """
    Describes possible FEC 128b/132b errors.
    """
    UNCORRECTED_BLOCK = 0
    CORRECTED_BLOCK_4 = 1
    CORRECTED_BLOCK_2 = 3
