sof-solana-gossip 3.1.8-sof.3

Blockchain, Rebuilt for Scale
Documentation
use {
    crate::contact_info,
    crossbeam_channel::{RecvError, SendError},
    std::io,
    thiserror::Error,
};

#[cfg(feature = "duplicate-shred-rocksdb")]
use crate::duplicate_shred;

#[derive(Error, Debug)]
pub enum GossipError {
    #[error("duplicate node instance")]
    DuplicateNodeInstance,
    #[cfg(feature = "duplicate-shred-rocksdb")]
    #[error(transparent)]
    DuplicateShredError(#[from] duplicate_shred::Error),
    #[error(transparent)]
    InvalidContactInfo(#[from] contact_info::Error),
    #[error(transparent)]
    Io(#[from] io::Error),
    #[error(transparent)]
    RecvError(#[from] RecvError),
    #[error("send error")]
    SendError,
    #[error("serialization error")]
    Serialize(#[from] Box<bincode::ErrorKind>),
}

impl<T> std::convert::From<SendError<T>> for GossipError {
    fn from(_e: SendError<T>) -> GossipError {
        GossipError::SendError
    }
}