fedimint_empty_common/
lib.rs#![deny(clippy::pedantic)]
#![allow(clippy::module_name_repetitions)]
use std::fmt;
use config::EmptyClientConfig;
use fedimint_core::core::{Decoder, ModuleInstanceId, ModuleKind};
use fedimint_core::encoding::{Decodable, Encodable};
use fedimint_core::module::{CommonModuleInit, ModuleCommon, ModuleConsensusVersion};
use fedimint_core::plugin_types_trait_impl_common;
use serde::{Deserialize, Serialize};
use thiserror::Error;
pub mod config;
pub const KIND: ModuleKind = ModuleKind::from_static_str("dummy");
pub const MODULE_CONSENSUS_VERSION: ModuleConsensusVersion = ModuleConsensusVersion::new(0, 0);
#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, Deserialize, Encodable, Decodable)]
pub struct EmptyConsensusItem;
#[derive(Debug, Clone, Eq, PartialEq, Hash, Deserialize, Serialize, Encodable, Decodable)]
pub struct EmptyInput;
#[derive(Debug, Clone, Eq, PartialEq, Hash, Deserialize, Serialize, Encodable, Decodable)]
pub struct EmptyOutput;
#[derive(Debug, Clone, Eq, PartialEq, Hash, Deserialize, Serialize, Encodable, Decodable)]
pub struct EmptyOutputOutcome;
#[derive(Debug, Clone, Eq, PartialEq, Hash, Error, Encodable, Decodable)]
pub enum EmptyInputError {
#[error("This module does not support inputs")]
NotSupported,
}
#[derive(Debug, Clone, Eq, PartialEq, Hash, Error, Encodable, Decodable)]
pub enum EmptyOutputError {
#[error("This module does not support outputs")]
NotSupported,
}
pub struct EmptyModuleTypes;
plugin_types_trait_impl_common!(
KIND,
EmptyModuleTypes,
EmptyClientConfig,
EmptyInput,
EmptyOutput,
EmptyOutputOutcome,
EmptyConsensusItem,
EmptyInputError,
EmptyOutputError
);
#[derive(Debug)]
pub struct EmptyCommonInit;
impl CommonModuleInit for EmptyCommonInit {
const CONSENSUS_VERSION: ModuleConsensusVersion = MODULE_CONSENSUS_VERSION;
const KIND: ModuleKind = KIND;
type ClientConfig = EmptyClientConfig;
fn decoder() -> Decoder {
EmptyModuleTypes::decoder_builder().build()
}
}
impl fmt::Display for EmptyClientConfig {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "EmptyClientConfig")
}
}
impl fmt::Display for EmptyInput {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "EmptyInput")
}
}
impl fmt::Display for EmptyOutput {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "EmptyOutput")
}
}
impl fmt::Display for EmptyOutputOutcome {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "EmptyOutputOutcome")
}
}
impl fmt::Display for EmptyConsensusItem {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "EmptyConsensusItem")
}
}