use crate::InferenceStep;
use burn_core::{module::Module, prelude::Backend};
use std::marker::PhantomData;
pub trait EvaluatorComponentTypes {
type Backend: Backend;
type Model: Module<Self::Backend> + InferenceStep + core::fmt::Display + 'static;
}
pub struct EvaluatorComponentTypesMarker<B, M> {
_p: PhantomData<(B, M)>,
}
impl<B, M> EvaluatorComponentTypes for EvaluatorComponentTypesMarker<B, M>
where
B: Backend,
M: Module<B> + InferenceStep + core::fmt::Display + 'static,
{
type Backend = B;
type Model = M;
}