casper-node 2.0.3

The Casper blockchain node
Documentation
use datasize::DataSize;
use std::{
    fmt,
    fmt::{Display, Formatter},
};

use crate::types::{NodeId, SyncLeapIdentifier};

#[derive(Debug, Clone, DataSize)]
pub(crate) enum LeapActivityError {
    TooOld(SyncLeapIdentifier, Vec<NodeId>),
    Unobtainable(SyncLeapIdentifier, Vec<NodeId>),
    NoPeers(SyncLeapIdentifier),
}

impl Display for LeapActivityError {
    fn fmt(&self, formatter: &mut Formatter) -> fmt::Result {
        match self {
            LeapActivityError::TooOld(sync_leap_identifier, ..) => {
                write!(formatter, "too old: {}", sync_leap_identifier)
            }
            LeapActivityError::Unobtainable(sync_leap_identifier, ..) => {
                write!(
                    formatter,
                    "unable to acquire data for: {}",
                    sync_leap_identifier
                )
            }
            LeapActivityError::NoPeers(sync_leap_identifier) => {
                write!(
                    formatter,
                    "sync leaper has no peers for: {}",
                    sync_leap_identifier
                )
            }
        }
    }
}