Skip to main content

TextCodec

Trait TextCodec 

Source
pub trait TextCodec: Send {
Show 44 methods // Required methods fn encode(&self, text: &str) -> Vec<u32>; fn token_bytes(&self, token: u32) -> Vec<u8> ⓘ; // Provided methods fn encode_content(&self, text: &str) -> Vec<u32> { ... } fn encode_pieces(&self, pieces: &[(&str, bool)]) -> Vec<u32> { ... } fn decode(&self, tokens: &[u32]) -> String { ... } fn stream_prologue(&self) -> Vec<u32> { ... } fn behavior_fingerprint(&self) -> Option<BehaviorFingerprint> { ... } fn chat_template_source(&self) -> Option<String> { ... } fn render_message(&self, _role: u32, _text: &str) -> Option<Vec<u32>> { ... } fn generation_prefix(&self, _state: TurnState) -> Option<Vec<u32>> { ... } fn trailing_generation_prompt( &self, _messages: &[ChatMessage], _tools: &[String], kwargs: &Map<String, Value>, span: &[u32], ) -> usize { ... } fn empty_think_tokens(&self) -> Option<Vec<u32>> { ... } fn generation_prefix_with( &self, state: TurnState, thinking: Option<bool>, ) -> Option<Vec<u32>> { ... } fn render_system_full( &self, system: Option<&str>, tool_jsons: &[String], _kwargs: &Map<String, Value>, ) -> Option<Vec<u32>> { ... } fn supports_reasoning_effort(&self) -> bool { ... } fn supports_enable_thinking(&self) -> bool { ... } fn reasoning_effort_levels(&self) -> Vec<&'static str> { ... } fn validate_template_kwargs( &self, _kwargs: &Map<String, Value>, ) -> Result<(), String> { ... } fn render_prompt_structured_with( &self, messages: &[ChatMessage], tools: &[String], _kwargs: &Map<String, Value>, ) -> Option<Vec<u32>> { ... } fn template_refusal( &self, _messages: &[ChatMessage], _tools: &[String], _kwargs: &Map<String, Value>, ) -> Option<String> { ... } fn turn_separator(&self) -> Option<Vec<u32>> { ... } fn channel_markers(&self) -> Vec<(u32, u32, u32)> { ... } fn render_system_with_tools( &self, _system: Option<&str>, _tool_jsons: &[String], ) -> Option<Vec<u32>> { ... } fn render_tool_result( &self, _name: &str, _content: &str, ) -> Option<Vec<u32>> { ... } fn render_assistant_with_tool_calls( &self, _content: &str, _calls: &[(String, String)], ) -> Option<Vec<u32>> { ... } fn render_assistant_with_tool_calls_after_query( &self, content: &str, calls: &[(String, String)], ) -> Option<Vec<u32>> { ... } fn render_fim( &self, _prefix: &str, _suffix: &str, _mode: u8, ) -> Option<Vec<u32>> { ... } fn render_turn_with_tokens( &self, _role: u32, _pre_text: &str, _inner: &[u32], _post_text: &str, ) -> Option<Vec<u32>> { ... } fn render_block( &self, role: u32, kind: u32, payload: &str, ) -> Option<Vec<u32>> { ... } fn channelizer(&self) -> Box<dyn Channelizer> { ... } fn turn_terminators(&self) -> Vec<u32> { ... } fn render_prompt_structured( &self, messages: &[ChatMessage], tools: &[String], ) -> Option<Vec<u32>> { ... } fn render_prompt( &self, messages: &[(u32, String)], tools: &[String], ) -> Option<Vec<u32>> { ... } fn call_grammar(&self, tool_jsons: &[String]) -> Option<String> { ... } fn renders_per_message(&self) -> bool { ... } fn tool_envelope(&self) -> ToolEnvelope { ... } fn tool_fragment_mode(&self) -> ToolFragmentMode { ... } fn tool_call_delimiters(&self) -> Option<(String, String)> { ... } fn marker_literal(&self, token: u32) -> String { ... } fn structural_tag( &self, tool_jsons: &[String], at_least_one: bool, ) -> Option<String> { ... } fn response_format_tag(&self, json_schema: &str) -> Option<String> { ... } fn parse_tool_call(&self, raw: &str) -> Option<(String, String)> { ... } fn parse_tool_call_with( &self, raw: &str, schemas: Option<&ToolSchemas>, ) -> Option<(String, String)> { ... } fn named_tool_call(&self, raw: &str) -> Option<(String, String)> { ... }
}

Required Methods§

Source

fn encode(&self, text: &str) -> Vec<u32>

Source

fn token_bytes(&self, token: u32) -> Vec<u8> ⓘ

Provided Methods§

Source

fn encode_content(&self, text: &str) -> Vec<u32>

Source

fn encode_pieces(&self, pieces: &[(&str, bool)]) -> Vec<u32>

Source

fn decode(&self, tokens: &[u32]) -> String

Source

fn stream_prologue(&self) -> Vec<u32>

Source

fn behavior_fingerprint(&self) -> Option<BehaviorFingerprint>

Source

fn chat_template_source(&self) -> Option<String>

Source

fn render_message(&self, _role: u32, _text: &str) -> Option<Vec<u32>>

Source

fn generation_prefix(&self, _state: TurnState) -> Option<Vec<u32>>

Source

fn trailing_generation_prompt( &self, _messages: &[ChatMessage], _tools: &[String], kwargs: &Map<String, Value>, span: &[u32], ) -> usize

Source

fn empty_think_tokens(&self) -> Option<Vec<u32>>

Source

fn generation_prefix_with( &self, state: TurnState, thinking: Option<bool>, ) -> Option<Vec<u32>>

Source

fn render_system_full( &self, system: Option<&str>, tool_jsons: &[String], _kwargs: &Map<String, Value>, ) -> Option<Vec<u32>>

Source

fn supports_reasoning_effort(&self) -> bool

Source

fn supports_enable_thinking(&self) -> bool

Source

fn reasoning_effort_levels(&self) -> Vec<&'static str>

Source

fn validate_template_kwargs( &self, _kwargs: &Map<String, Value>, ) -> Result<(), String>

Source

fn render_prompt_structured_with( &self, messages: &[ChatMessage], tools: &[String], _kwargs: &Map<String, Value>, ) -> Option<Vec<u32>>

Source

fn template_refusal( &self, _messages: &[ChatMessage], _tools: &[String], _kwargs: &Map<String, Value>, ) -> Option<String>

Source

fn turn_separator(&self) -> Option<Vec<u32>>

Source

fn channel_markers(&self) -> Vec<(u32, u32, u32)>

Source

fn render_system_with_tools( &self, _system: Option<&str>, _tool_jsons: &[String], ) -> Option<Vec<u32>>

Source

fn render_tool_result(&self, _name: &str, _content: &str) -> Option<Vec<u32>>

Source

fn render_assistant_with_tool_calls( &self, _content: &str, _calls: &[(String, String)], ) -> Option<Vec<u32>>

Source

fn render_assistant_with_tool_calls_after_query( &self, content: &str, calls: &[(String, String)], ) -> Option<Vec<u32>>

The same turn where no user query follows it in the conversation (a step of a tool loop): some templates render that turn differently from one a later query put in history (Qwen’s open its reasoning block).

Source

fn render_fim( &self, _prefix: &str, _suffix: &str, _mode: u8, ) -> Option<Vec<u32>>

Source

fn render_turn_with_tokens( &self, _role: u32, _pre_text: &str, _inner: &[u32], _post_text: &str, ) -> Option<Vec<u32>>

Source

fn render_block(&self, role: u32, kind: u32, payload: &str) -> Option<Vec<u32>>

Source

fn channelizer(&self) -> Box<dyn Channelizer>

Source

fn turn_terminators(&self) -> Vec<u32>

Source

fn render_prompt_structured( &self, messages: &[ChatMessage], tools: &[String], ) -> Option<Vec<u32>>

Source

fn render_prompt( &self, messages: &[(u32, String)], tools: &[String], ) -> Option<Vec<u32>>

Source

fn call_grammar(&self, tool_jsons: &[String]) -> Option<String>

Source

fn renders_per_message(&self) -> bool

Source

fn tool_envelope(&self) -> ToolEnvelope

Source

fn tool_fragment_mode(&self) -> ToolFragmentMode

Source

fn tool_call_delimiters(&self) -> Option<(String, String)>

Source

fn marker_literal(&self, token: u32) -> String

Source

fn structural_tag( &self, tool_jsons: &[String], at_least_one: bool, ) -> Option<String>

Source

fn response_format_tag(&self, json_schema: &str) -> Option<String>

Source

fn parse_tool_call(&self, raw: &str) -> Option<(String, String)>

Source

fn parse_tool_call_with( &self, raw: &str, schemas: Option<&ToolSchemas>, ) -> Option<(String, String)>

Source

fn named_tool_call(&self, raw: &str) -> Option<(String, String)>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§