0.1.0
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
# file: kb_materializer_pool_state/Cargo.toml
|
||||
# version: 2
|
||||
|
||||
[package]
|
||||
name = "kb_materializer_pool_state"
|
||||
version.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
publish.workspace = true
|
||||
|
||||
[dependencies]
|
||||
kb_core = { path = "../kb_core" }
|
||||
kb_materializer_api = { path = "../kb_materializer_api" }
|
||||
kb_model = { path = "../kb_model" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
@@ -0,0 +1,17 @@
|
||||
<!-- file: kb_materializer_pool_state/README.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# kb_materializer_pool_state
|
||||
|
||||
Ce crate matérialise les événements décodés de la famille `pool_state` dans les tables métier correspondantes.
|
||||
|
||||
## Rôle dans l'écosystème
|
||||
|
||||
Ce module fait partie du découpage strict de Khadhroony Bot2. Il doit conserver des dépendances limitées et ne pas contourner les interfaces communes du workspace.
|
||||
|
||||
## Règles locales
|
||||
|
||||
- Les commentaires de code restent en anglais.
|
||||
- La documentation Markdown reste en français.
|
||||
- Les exports publics sont contrôlés depuis `lib.rs` lorsque le crate expose une bibliothèque.
|
||||
- Les binaires utilisent `main.rs` avec les attributs Rust obligatoires.
|
||||
@@ -0,0 +1,12 @@
|
||||
// file: kb_materializer_pool_state/src/lib.rs
|
||||
// version: 1
|
||||
|
||||
//! Materializer crate for `pool_state`.
|
||||
#![warn(missing_docs)]
|
||||
#![deny(unreachable_pub)]
|
||||
#![forbid(unsafe_code)]
|
||||
|
||||
mod materializer;
|
||||
|
||||
/// Initial materializer implementation placeholder.
|
||||
pub use crate::materializer::PoolStateMaterializer;
|
||||
@@ -0,0 +1,35 @@
|
||||
// file: kb_materializer_pool_state/src/materializer.rs
|
||||
// version: 5
|
||||
|
||||
//! Materializer scaffold for the `kb_materializer_pool_state` crate.
|
||||
|
||||
/// Initial materializer implementation placeholder.
|
||||
#[derive(Clone, Debug, Default)]
|
||||
pub struct PoolStateMaterializer;
|
||||
|
||||
impl kb_materializer_api::Materializer for crate::PoolStateMaterializer {
|
||||
fn materializer_name(&self) -> &'static str {
|
||||
return "kb_materializer_pool_state";
|
||||
}
|
||||
|
||||
fn materializer_version(&self) -> &'static str {
|
||||
return env!("CARGO_PKG_VERSION");
|
||||
}
|
||||
|
||||
fn accepts_event(&self, _event: &kb_model::DecodedProtocolEvent) -> bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
fn materialize_event(
|
||||
&self,
|
||||
event: &kb_model::DecodedProtocolEvent,
|
||||
) -> kb_core::Result<std::vec::Vec<kb_model::MaterializedEvent>> {
|
||||
let materialized = kb_model::MaterializedEvent {
|
||||
signature: event.signature.clone(),
|
||||
slot: event.slot,
|
||||
decoded_family: event.event_family,
|
||||
materialized_family: kb_model::MaterializedEventFamily::PoolState,
|
||||
};
|
||||
return std::result::Result::Ok(std::vec![materialized]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user