oca 0.2.0

An experiment with no_std
Documentation
use crate::ocp1::{
    pdu::{
        InvalidMessageCount, InvalidPduType, InvalidProtocolVersion, InvalidSyncValue,
        MessageCount, PduSize, PduType,
    },
    utils::writer::Error as WriterError,
};

#[derive(Debug, thiserror::Error)]
pub enum Error {
    #[error("incomplete input, expected more bytes")]
    IncompleteInput,

    #[error(transparent)]
    InvalidSyncValue(#[from] InvalidSyncValue),

    #[error(transparent)]
    UnexpectedProtocolVersion(#[from] InvalidProtocolVersion),

    #[error(transparent)]
    UnexpectedPduType(#[from] InvalidPduType),

    #[error("invalid pdu size {0:?}")]
    InvalidPduSize(PduSize),

    #[error(transparent)]
    InvalidMessageCount(#[from] InvalidMessageCount),

    #[error("invalid message size {0}")]
    InvalidMessageSize(usize),

    #[error("invalid message count for {0:?}: {1:?}")]
    InvalidMessageCountForPduType(PduType, MessageCount),

    #[error("unexpected notification1 parameter count {0}")]
    UnexpectedNotification1ParameterCount(u8),

    #[error("unexpected notification2 type {0}")]
    UnexpectedNotification2Type(u8),

    #[error("invalid keep-alive payload size {0}")]
    InvalidKeepAlivePayloadSize(usize),

    #[error(transparent)]
    WriterError(#[from] WriterError),
}