casper-node 2.0.3

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

use derive_more::From;
use static_assertions::const_assert;

use crate::effect::{requests::RestRequest, Responder};

const _REST_EVENT_SIZE: usize = size_of::<Event>();
const_assert!(_REST_EVENT_SIZE < 89);

#[derive(Debug, From)]
pub(crate) enum Event {
    Initialize,
    #[from]
    RestRequest(RestRequest),
    GetMetricsResult {
        text: Option<String>,
        main_responder: Responder<Option<String>>,
    },
}

impl Display for Event {
    fn fmt(&self, formatter: &mut Formatter) -> fmt::Result {
        match self {
            Event::Initialize => write!(formatter, "initialize"),
            Event::RestRequest(request) => write!(formatter, "{}", request),
            Event::GetMetricsResult { text, .. } => match text {
                Some(txt) => write!(formatter, "get metrics ({} bytes)", txt.len()),
                None => write!(formatter, "get metrics (failed)"),
            },
        }
    }
}