///|
/// CLI helper for Arc90 extraction testing
/// This demonstrates how to use the extraction on a parsed accessibility tree

///|
/// Print extraction result in human-readable format
pub fn print_extraction_result(result : ExtractionResult) -> String {
  result.to_summary()
}

///|
/// Extract and print statistics about content detection
pub fn get_extraction_stats(result : ExtractionResult) -> String {
  let buf = StringBuilder::new()
  buf.write_string("Arc90 Extraction Statistics:\n")
  buf.write_string("----------------------------\n")
  buf.write_string("Total content blocks found: ")
  buf.write_string(result.content_blocks.length().to_string())
  buf.write_string("\n")
  buf.write_string("Navigation elements: ")
  buf.write_string(result.detected_navigation.length().to_string())
  buf.write_string("\n")
  buf.write_string("Detected ads: ")
  buf.write_string(result.detected_ads.length().to_string())
  buf.write_string("\n\n")
  match result.main_content {
    Some(node) => {
      buf.write_string("Main Content Detected:\n")
      buf.write_string("  Role: ")
      buf.write_string(node.role.to_string())
      buf.write_string("\n")
      match node.name {
        Some(name) => {
          let display_name = if name.length() > 100 {
            name.unsafe_substring(start=0, end=100) + "..."
          } else {
            name
          }
          buf.write_string("  Name: \"")
          buf.write_string(display_name)
          buf.write_string("\"\n")
        }
        None => ()
      }
      match node.text {
        Some(text) => {
          let display_text = if text.length() > 200 {
            text.unsafe_substring(start=0, end=200) + "..."
          } else {
            text
          }
          buf.write_string("  Text: \"")
          buf.write_string(display_text)
          buf.write_string("\"\n")
        }
        None => ()
      }
    }
    None => buf.write_string("No main content detected.\n")
  }
  buf.write_string("\nTop 3 Content Blocks by Score:\n")
  let len = result.content_blocks.length()
  let limit = if len < 3 { len } else { 3 }
  for i in 0..