pub enum TruncationDirection { Start, End, } pub trait LanguageModel { fn name(&self) -> String; fn count_tokens(&self, content: &str) -> anyhow::Result; fn truncate( &self, content: &str, length: usize, direction: TruncationDirection, ) -> anyhow::Result; fn capacity(&self) -> anyhow::Result; }