///|
fn main {
  // Example usage of the INI parser
  let sample_ini =
    #|# Sample configuration file
    #|app_name=INI Parser Demo  
    #|debug=true
    #|
    #|[database]
    #|host=localhost
    #|port=5432
    #|name=demo_db
    #|
    #|[server]
    #|port=8080
    #|threads=4
    #|
  println("=== INI Parser Demo ===")
  println("Parsing the following INI content:")
  println(sample_ini)
  println("")
  match @lib.parse(sample_ini) {
    Err(e) => println("Parse error: \{e}")
    Ok(config) => {
      println("Parsed successfully!")
      println("")

      // Demonstrate accessing values
      println("Global settings:")
      println(
        "  app_name: " + config.get_or_default("global", "app_name", "N/A"),
      )
      println("  debug: " + config.get_or_default("global", "debug", "false"))
      println("")
      println("Database configuration:")
      println("  host: " + config.get_or_default("database", "host", "N/A"))
      println("  port: " + config.get_or_default("database", "port", "N/A"))
      println("  name: " + config.get_or_default("database", "name", "N/A"))
      println("")
      println("Server configuration:")
      println("  port: " + config.get_or_default("server", "port", "N/A"))
      println("  threads: " + config.get_or_default("server", "threads", "N/A"))
      println("")
      println("Available sections:")
      let sections = config.sections()
      for section in sections {
        println("  - " + section)
      }
      println("")
      println("Keys in 'database' section:")
      let db_keys = config.keys("database")
      for key in db_keys {
        println("  - " + key)
      }
    }
  }
}