edc-dataplane-core 0.2.0

An EDC compatible dataplane
Documentation
use miwa::{
    core::{Extension, MiwaContext, MiwaResult},
    derive::extension,
};

use crate::core::{
    db::transfer::TransferRepoRef,
    service::transfer::{TransferManagerRef, TransferService},
};

pub struct TransferServiceExtension;

#[async_trait::async_trait]
impl Extension for TransferServiceExtension {
    async fn start(&self) -> MiwaResult<()> {
        Ok(())
    }

    async fn shutdown(&self) -> MiwaResult<()> {
        Ok(())
    }
}

#[extension(name = "Transfer Service sextension", provides(TransferService))]
pub async fn transfer_service_extension(
    ctx: &MiwaContext,
    manager: TransferManagerRef,
    repo: TransferRepoRef,
) -> MiwaResult<TransferServiceExtension> {
    ctx.register(TransferService::new(manager, repo));
    Ok(TransferServiceExtension)
}