pub fn clip(self, content: &str) -> ClipperResult<'_> {
        // If content is empty, return as is
        if content.is_empty() {
            return ClipperResult { prefix: None, suffix: None, actual: content };
        }

        // Get character count (not byte count)
        let char_count = content.chars().count();

        // Apply the truncation strategy
        match self {
            Clipper::Prefix(limit) => self.apply_prefix(content, char_count, limit),
            Clipper::Suffix(limit) => self.apply_suffix(content, char_count, limit),
            Clipper::PrefixSuffix(prefix_limit, suffix_limit) => {
                self.apply_prefix_suffix(content, char_count, prefix_limit, suffix_limit)
            }
        }
    }
Apply this truncation strategy to the given content

# Arguments
* `content` - The text content to truncate

# Returns
A TruncationResult containing the truncated content
crates/forge_services/src/clipper.rs