pub trait EncoderDecoderLM: Send + Sync {
// Required methods
fn encode(&mut self, cache_id: &str, input: &[u32]) -> EncoderState;
fn decode_step(
&mut self,
cache_id: &str,
token: u32,
pos: u32,
encoder: &EncoderState,
) -> Vec<f32>;
fn release(&mut self, cache_id: &str);
}Required Methods§
Sourcefn encode(&mut self, cache_id: &str, input: &[u32]) -> EncoderState
fn encode(&mut self, cache_id: &str, input: &[u32]) -> EncoderState
Encoded side output. Type-erased so different models can carry
different shapes (Whisper: [n_audio_frames, hidden]).
Sourcefn decode_step(
&mut self,
cache_id: &str,
token: u32,
pos: u32,
encoder: &EncoderState,
) -> Vec<f32>
fn decode_step( &mut self, cache_id: &str, token: u32, pos: u32, encoder: &EncoderState, ) -> Vec<f32>
Advance the decoder one step, conditioned on encoder produced earlier.
fn release(&mut self, cache_id: &str)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".