//! Generated by `empu make:service {{ name }}`.
//!
//! Register `std::sync::Arc<dyn {{ trait_name }}>` in [`axum::extract::State`] or `FromRef`.

use std::sync::Arc;

pub trait {{ trait_name }}: Send + Sync {
    /// Example operation — replace with your API.
    fn ping(&self) -> &'static str;
}

#[derive(Default)]
pub struct {{ impl_name }};

impl {{ trait_name }} for {{ impl_name }} {
    fn ping(&self) -> &'static str {
        "pong"
    }
}

pub type Shared{{ name }}Service = Arc<dyn {{ trait_name }}>;
