use core::marker::PhantomData;
use cgp_core::component::UseDelegate;
use cgp_core::prelude::*;
#[cgp_component {
provider: Producer,
derive_delegate: UseDelegate<Code>,
}]
pub trait CanProduce<Code> {
type Output;
fn produce(&self, _tag: PhantomData<Code>) -> Self::Output;
}