use super::macros::intermediate; use super::registry::Registry; use crate::error::CustomError; #[derive(Debug, Clone)] pub(crate) struct ITarget { pub(crate) id: String, value: String, } intermediate!(ITarget, Target, original, registry, { let mut registry = registry.lock().unwrap(); let id = registry.get_target(original.value); Ok(ITarget { id: id.clone(), value: original.value.to_owned(), }) });