casper-node 2.0.3

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

use derive_more::From;
use serde::Serialize;

use crate::effect::{
    incoming::{TrieDemand, TrieRequestIncoming},
    requests::ContractRuntimeRequest,
};

#[derive(Debug, From, Serialize)]
pub(crate) enum Event {
    #[from]
    ContractRuntimeRequest(ContractRuntimeRequest),

    #[from]
    TrieRequestIncoming(TrieRequestIncoming),

    #[from]
    TrieDemand(TrieDemand),
}

impl Display for Event {
    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
        match self {
            Event::ContractRuntimeRequest(req) => {
                write!(f, "contract runtime request: {}", req)
            }
            Event::TrieRequestIncoming(req) => write!(f, "trie request incoming: {}", req),
            Event::TrieDemand(demand) => write!(f, "trie demand: {}", demand),
        }
    }
}