puerto 0.14.0

Puerto — Rust full-stack DDD framework CLI. Scaffolds Clean Architecture projects with auto-wired DI, SQLx support, and zero manual wiring. Formerly puerto-framework.
use async_trait::async_trait;

use crate::domain::{{ snake }}::{
    errors::{{ pascal }}Error,
    model::{{ "{" }}{{ pascal }}, {{ pascal }}Id},
};

#[derive(Debug, Clone)]
pub struct Get{{ pascal }}Params {
    pub id: {{ pascal }}Id,
}

#[async_trait]
pub trait Get{{ pascal }}UseCaseTrait: Send + Sync {
    async fn execute(&self, params: Get{{ pascal }}Params) -> Result<{{ pascal }}, {{ pascal }}Error>;
}

#[cfg(any(test, feature = "test-utils"))]
pub mod mocks {
    use mockall::mock;

    use super::*;

    mock! {
        pub Get{{ pascal }}UseCase {}

        #[async_trait]
        impl Get{{ pascal }}UseCaseTrait for Get{{ pascal }}UseCase {
            async fn execute(&self, params: Get{{ pascal }}Params) -> Result<{{ pascal }}, {{ pascal }}Error>;
        }
    }
}