use crate::{InferenceStep, TrainStep};
use burn_core::module::Module;
pub trait LearnerModel: TrainStep + InferenceStep + Module + core::fmt::Display + 'static {}
impl<T> LearnerModel for T where T: TrainStep + InferenceStep + Module + core::fmt::Display + 'static
{}
pub(crate) type TrainingModelInput<M> = <M as TrainStep>::Input;
pub(crate) type InferenceModelInput<M> = <M as InferenceStep>::Input;
pub(crate) type TrainingModelOutput<M> = <M as TrainStep>::Output;
pub(crate) type InferenceModelOutput<M> = <M as InferenceStep>::Output;