pub trait Engine {
Show 49 methods
// Required methods
fn tick<'a>(
&'a mut self,
plan: &TickPlan,
arena: &RecordArena,
rings: &mut dyn Rings,
) -> Result<&'a TickEvents, Status>;
fn pump(&mut self);
fn state_spaces(&self) -> &[StateSpaceDesc];
fn strategy_register(
&mut self,
reg: &StrategyRegistration,
) -> Result<&StrategyGrant, Status>;
fn space_match(
&mut self,
space_id: u32,
span_tokens: &[u32],
media_deps: &[[u8; 32]],
) -> Result<&MatchResult, Status>;
fn seed_acquire(
&mut self,
span_tokens: &[u32],
prefix_len: u64,
determinism_class: u8,
) -> Result<u64, Status>;
fn seed_release(&mut self, seed_handle: u64) -> Result<(), Status>;
fn seq_fork(
&mut self,
parent: SeqHandle,
flags: u32,
) -> Result<SeqHandle, Status>;
fn space_export_size(
&mut self,
seq: SeqHandle,
space_id: u32,
range: TokenRange,
encoding: u8,
) -> Result<(u64, u64), Status>;
fn space_snapshot(
&mut self,
seq: SeqHandle,
space_id: u32,
boundary_pos: u64,
dst_len: u64,
sizing_gen: u64,
) -> Result<OpHandle, Status>;
fn space_restore(
&mut self,
seq: SeqHandle,
space_id: u32,
src: &[u8],
) -> Result<OpHandle, Status>;
fn space_trim(
&mut self,
seq: SeqHandle,
space_id: u32,
new_len: u64,
) -> Result<(), Status>;
fn space_demote(
&mut self,
seq: SeqHandle,
space_id: u32,
range: TokenRange,
encoding: u8,
dst_len: u64,
sizing_gen: u64,
) -> Result<OpHandle, Status>;
fn space_promote(
&mut self,
seq: SeqHandle,
space_id: u32,
range: TokenRange,
src: &[u8],
) -> Result<OpHandle, Status>;
fn op_poll(&mut self, op: OpHandle) -> Result<OpStatus, Status>;
fn op_cancel(&mut self, op: OpHandle) -> Result<(), Status>;
fn cache_evict(
&mut self,
evictable_cache_classes: u64,
protected_quota_bytes: u64,
max_evict_bytes: u64,
bytes_target: u64,
) -> Result<u64, Status>;
// Provided methods
fn attach_ring(&mut self, _ring: &RingAttachment) -> Result<(), Status> { ... }
fn kv_bits(&self) -> u32 { ... }
fn space_match_ref(
&mut self,
space_id: u32,
_span: &TokenRef,
span_tokens: &[u32],
media_deps: &[[u8; 32]],
) -> Result<&MatchResult, Status> { ... }
fn seed_acquire_ref(
&mut self,
_span: &TokenRef,
span_tokens: &[u32],
prefix_len: u64,
determinism_class: u8,
) -> Result<u64, Status> { ... }
fn seed_lease_ticks(&self) -> Option<u64> { ... }
fn seed_adopt(
&mut self,
_seq: SeqHandle,
_span_tokens: &[u32],
) -> Result<u64, Status> { ... }
fn media_probe(&mut self, _image_path: &str) -> Result<MediaInfo, Status> { ... }
fn media_encode(
&mut self,
_image_path: &str,
) -> Result<(u64, MediaInfo), Status> { ... }
fn media_release(&mut self, _media_handle: u64) -> Result<(), Status> { ... }
fn media_bind(
&mut self,
_lane_tag: u64,
_media_handle: u64,
_token_offset: u32,
) -> Result<(), Status> { ... }
fn seed_adopt_ref(
&mut self,
seq: SeqHandle,
_span: &TokenRef,
span_tokens: &[u32],
) -> Result<u64, Status> { ... }
fn lane_sequence(&self, _lane_tag: u64) -> Option<SeqHandle> { ... }
fn grammar_create(&mut self, _json_schema: &str) -> Result<u32, Status> { ... }
fn grammar_create_structural(
&mut self,
_tag_json: &str,
) -> Result<u32, Status> { ... }
fn grammar_free(&mut self, _handle: u32) -> Result<(), Status> { ... }
fn logit_bias_create(
&mut self,
_tokens: &[i32],
_values: &[f32],
) -> Result<u32, Status> { ... }
fn logit_bias_free(&mut self, _handle: u32) -> Result<(), Status> { ... }
fn embed(&mut self, _tokens: &[u32]) -> Result<Vec<f32>, Status> { ... }
fn transcribe(
&mut self,
_audio_path: &str,
_params: &TranscribeParams,
_on_segment: Option<SegmentSink<'_>>,
) -> Result<Transcription, Status> { ... }
fn lora_load(&mut self, _adapter_path: &str) -> Result<(), Status> { ... }
fn lora_unload(&mut self) -> Result<(), Status> { ... }
fn lora_id(&self) -> Option<String> { ... }
fn capability_descriptor(&self) -> Option<String> { ... }
fn create_sequence(&mut self) -> Result<SeqHandle, Status> { ... }
fn free_sequence(&mut self, _seq: SeqHandle) -> Result<(), Status> { ... }
fn publish_sequence(
&mut self,
_seq: SeqHandle,
_tokens: &[u32],
) -> Result<(), Status> { ... }
fn unpublish(&mut self, _tokens: &[u32]) -> Result<(), Status> { ... }
fn space_snapshot_boundary(
&mut self,
_seq: SeqHandle,
_space_id: u32,
_cap: u64,
) -> Result<u64, Status> { ... }
fn cache_evict_entries(
&mut self,
_keys: &[([u8; 32], [u8; 32])],
) -> Result<(), Status> { ... }
fn take_op_output(&mut self, _op: OpHandle) -> Option<Vec<u8>> { ... }
fn n_layers(&self) -> u32 { ... }
fn forward_stage(
&mut self,
_tokens: &[u32],
_start_layer: u32,
_end_layer: u32,
_hidden_in: Option<Vec<u8>>,
) -> Result<StageOutput, Status> { ... }
}Required Methods§
fn tick<'a>( &'a mut self, plan: &TickPlan, arena: &RecordArena, rings: &mut dyn Rings, ) -> Result<&'a TickEvents, Status>
fn pump(&mut self)
fn state_spaces(&self) -> &[StateSpaceDesc]
fn strategy_register( &mut self, reg: &StrategyRegistration, ) -> Result<&StrategyGrant, Status>
fn space_match( &mut self, space_id: u32, span_tokens: &[u32], media_deps: &[[u8; 32]], ) -> Result<&MatchResult, Status>
fn seed_acquire( &mut self, span_tokens: &[u32], prefix_len: u64, determinism_class: u8, ) -> Result<u64, Status>
fn seed_release(&mut self, seed_handle: u64) -> Result<(), Status>
fn seq_fork( &mut self, parent: SeqHandle, flags: u32, ) -> Result<SeqHandle, Status>
fn space_export_size( &mut self, seq: SeqHandle, space_id: u32, range: TokenRange, encoding: u8, ) -> Result<(u64, u64), Status>
fn space_snapshot( &mut self, seq: SeqHandle, space_id: u32, boundary_pos: u64, dst_len: u64, sizing_gen: u64, ) -> Result<OpHandle, Status>
fn space_restore( &mut self, seq: SeqHandle, space_id: u32, src: &[u8], ) -> Result<OpHandle, Status>
fn space_trim( &mut self, seq: SeqHandle, space_id: u32, new_len: u64, ) -> Result<(), Status>
fn space_demote( &mut self, seq: SeqHandle, space_id: u32, range: TokenRange, encoding: u8, dst_len: u64, sizing_gen: u64, ) -> Result<OpHandle, Status>
fn space_promote( &mut self, seq: SeqHandle, space_id: u32, range: TokenRange, src: &[u8], ) -> Result<OpHandle, Status>
fn op_poll(&mut self, op: OpHandle) -> Result<OpStatus, Status>
fn op_cancel(&mut self, op: OpHandle) -> Result<(), Status>
fn cache_evict( &mut self, evictable_cache_classes: u64, protected_quota_bytes: u64, max_evict_bytes: u64, bytes_target: u64, ) -> Result<u64, Status>
Provided Methods§
fn attach_ring(&mut self, _ring: &RingAttachment) -> Result<(), Status>
fn kv_bits(&self) -> u32
fn space_match_ref( &mut self, space_id: u32, _span: &TokenRef, span_tokens: &[u32], media_deps: &[[u8; 32]], ) -> Result<&MatchResult, Status>
fn seed_acquire_ref( &mut self, _span: &TokenRef, span_tokens: &[u32], prefix_len: u64, determinism_class: u8, ) -> Result<u64, Status>
fn seed_lease_ticks(&self) -> Option<u64>
fn seed_adopt( &mut self, _seq: SeqHandle, _span_tokens: &[u32], ) -> Result<u64, Status>
fn media_probe(&mut self, _image_path: &str) -> Result<MediaInfo, Status>
fn media_encode( &mut self, _image_path: &str, ) -> Result<(u64, MediaInfo), Status>
fn media_release(&mut self, _media_handle: u64) -> Result<(), Status>
fn media_bind( &mut self, _lane_tag: u64, _media_handle: u64, _token_offset: u32, ) -> Result<(), Status>
fn seed_adopt_ref( &mut self, seq: SeqHandle, _span: &TokenRef, span_tokens: &[u32], ) -> Result<u64, Status>
fn lane_sequence(&self, _lane_tag: u64) -> Option<SeqHandle>
fn grammar_create(&mut self, _json_schema: &str) -> Result<u32, Status>
fn grammar_create_structural(&mut self, _tag_json: &str) -> Result<u32, Status>
fn grammar_free(&mut self, _handle: u32) -> Result<(), Status>
fn logit_bias_create( &mut self, _tokens: &[i32], _values: &[f32], ) -> Result<u32, Status>
fn logit_bias_free(&mut self, _handle: u32) -> Result<(), Status>
fn embed(&mut self, _tokens: &[u32]) -> Result<Vec<f32>, Status>
fn transcribe( &mut self, _audio_path: &str, _params: &TranscribeParams, _on_segment: Option<SegmentSink<'_>>, ) -> Result<Transcription, Status>
fn lora_load(&mut self, _adapter_path: &str) -> Result<(), Status>
fn lora_unload(&mut self) -> Result<(), Status>
fn lora_id(&self) -> Option<String>
fn capability_descriptor(&self) -> Option<String>
fn create_sequence(&mut self) -> Result<SeqHandle, Status>
fn free_sequence(&mut self, _seq: SeqHandle) -> Result<(), Status>
fn publish_sequence( &mut self, _seq: SeqHandle, _tokens: &[u32], ) -> Result<(), Status>
Sourcefn unpublish(&mut self, _tokens: &[u32]) -> Result<(), Status>
fn unpublish(&mut self, _tokens: &[u32]) -> Result<(), Status>
Drops the prefix-cache entry published under exactly tokens, unless
a seed holds it; none there is not an error.
fn space_snapshot_boundary( &mut self, _seq: SeqHandle, _space_id: u32, _cap: u64, ) -> Result<u64, Status>
fn cache_evict_entries( &mut self, _keys: &[([u8; 32], [u8; 32])], ) -> Result<(), Status>
fn take_op_output(&mut self, _op: OpHandle) -> Option<Vec<u8>>
fn n_layers(&self) -> u32
fn forward_stage( &mut self, _tokens: &[u32], _start_layer: u32, _end_layer: u32, _hidden_in: Option<Vec<u8>>, ) -> Result<StageOutput, Status>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".