// Example: validate documents and print every structured error. RFC constraints only; suggestions live in audit.

///|
fn main {
  let samples = [
    // sample 2: missing Expires; sample 3: no Contact + duplicate Expires; sample 4: invalid values
    "Contact: mailto:security@example.com\nExpires: 2027-01-01T00:00:00Z\n", "Contact: mailto:security@example.com\n",
    "Expires: 2027-01-01T00:00:00Z\nExpires: 2028-01-01T00:00:00Z\n", "Contact: not a uri\nExpires: next Tuesday\n",
  ]
  let mut i = 0
  while i < samples.length() {
    println("--- sample \{i + 1} ---")
    match @lib.parse_security_txt(samples[i]) {
      Ok(document) => {
        let errors = @lib.validate_all(document)
        if errors.length() == 0 {
          println("valid")
        } else {
          println("invalid (\{errors.length()} errors):")
          for err in errors {
            println("  \{err.to_string()}")
          }
        }
      }
      Err(err) => println("parse error: \{err.to_string()}")
    }
    i += 1
  }
}