fix: improved performance by truncating not displayed text

This commit is contained in:
Per Stark
2025-09-22 15:37:55 +02:00
parent f592eb7200
commit 903585bfef
5 changed files with 52 additions and 7 deletions

View File

@@ -0,0 +1,35 @@
use common::storage::types::text_content::TextContent;
const TEXT_PREVIEW_LENGTH: usize = 50;
fn maybe_truncate(value: &str) -> Option<String> {
let mut char_count = 0;
for (idx, _) in value.char_indices() {
if char_count == TEXT_PREVIEW_LENGTH {
return Some(value[..idx].to_string());
}
char_count += 1;
}
None
}
pub fn truncate_text_content(mut content: TextContent) -> TextContent {
if let Some(truncated) = maybe_truncate(&content.text) {
content.text = truncated;
}
if let Some(context) = content.context.as_mut() {
if let Some(truncated) = maybe_truncate(context) {
*context = truncated;
}
}
content
}
pub fn truncate_text_contents(contents: Vec<TextContent>) -> Vec<TextContent> {
contents.into_iter().map(truncate_text_content).collect()
}