use syrette::{injectable, ptr::TransientPtr}; use third_party_lib::Shuriken; use crate::interfaces::ninja::INinja; pub struct Ninja { shuriken: TransientPtr, } #[injectable(INinja)] impl Ninja { pub fn new(shuriken: TransientPtr) -> Self { Self { shuriken } } } impl INinja for Ninja { fn throw_shuriken(&self) { self.shuriken.throw(); } }