///|
fn main {
  let sample = "name|age|active\nAda|36|true\nAlan|not-int|false\n|41|yes\n"
  let guess = @mbitsv.sniff(sample)
  println("mbitsv")
  println(guess.summary())
  match @mbitsv.parse_auto(sample) {
    Ok(table) => {
      println(table.summary())
      let profile = @mbitsv.profile(table)
      println(profile.summary())
      match
        @mbitsv.parse_schema_spec(
          "name:non_empty!,age:int!,active:bool!", false,
        ) {
        Ok(schema) => {
          println(@mbitsv.schema_to_spec(schema))
          let report = @mbitsv.validate(table, schema)
          println(report.summary())
          for fix in @mbitsv.suggest_fixes(report) {
            let line =
              $|fix row=\{fix.row} column=\{fix.column}: \{fix.suggestion}
            println(line)
          }
          println(report.to_markdown())
        }
        Err(err) => {
          println("schema error")
          println(err.message)
        }
      }
      println(@mbitsv.to_markdown(table, 2))
    }
    Err(err) => {
      println("parse error")
      println(err.message)
    }
  }
}