class io.UartSignalDecoder

class UartSignalDecoder {
    // enums

    enum State;

    // fields

    uint64_t readonly m_startEdgeTimestamp;
    uchar_t m_char;

    // methods

    void start(
        uint_t baudRate,
        uint_t dataBits,
        io.SerialStopBits stopBits,
        io.SerialParity parity
    );

    io.UartDecodeResult add(
        uint64_t timestamp,
        bool lineState
    );

    io.UartDecodeResult onTimer();
};