parse-mediawiki-sql 0.4.0

A parser for SQL dumps of a MediaWiki database
Documentation
use joinery::prelude::*;
use parse_mediawiki_sql::{schemas::Page, FromSqlTuple};

#[allow(unused_must_use)]
fn main() {
    let page_tuple: Vec<&'static str> = concat!(
        "(7,4,'GNU_Free_Documentation_License','',0,0,0.492815242607906,",
        "'20200201151554','20200201151623',28863815,2777,'wikitext',NULL)"
    )
    .strip_prefix("(")
    .unwrap()
    .strip_suffix(")")
    .unwrap()
    .split(",")
    .collect();
    for i in 0..page_tuple.len() {
        for random_value in &["666", "'666'", "66.6", "NULL"] {
            let mut bad_page_tuple: String = page_tuple
                .iter()
                .enumerate()
                .map(|(j, segment)| if j == i { random_value } else { segment })
                .join_with(",")
                .to_string();
            bad_page_tuple.insert(0, '(');
            bad_page_tuple.push(')');
            match Page::from_sql_tuple(bad_page_tuple.as_bytes()) {
                Ok((_, page)) => {
                    println!("{:?}", page);
                }
                Err(e) => match e {
                    nom::Err::Incomplete(_) => println!("incomplete"),
                    nom::Err::Error(e) | nom::Err::Failure(e) => {
                        println!("{}", e);
                    }
                },
            }
        }
    }
}