utf-railroad 1.1.0

Generate text railroad diagrams in rust.
Documentation
extern crate utf_railroad;

use utf_railroad::{Diagram, Terminal, NonTerminal, Optional, Repeat, Sequence};

fn main() {
    let diagram = Diagram::default()
        .push(Box::new(Terminal::new("CREATE")))
        .push(Box::new(Terminal::new("VIRTUAL")))
        .push(Box::new(Terminal::new("TABLE")))
        .push(Box::new(
            Optional::new(Box::new(
                Sequence::default()
                    .push(Box::new(Terminal::new("IF")))
                    .push(Box::new(Terminal::new("NOT")))
                    .push(Box::new(Terminal::new("EXISTS")))
            ))
        ))
        .next_row()
        .push(Box::new(
            Optional::new(Box::new(
                Sequence::default()
                    .push(Box::new(NonTerminal::new("schema-name")))
                    .push(Box::new(Terminal::new(".")))
            ))
        ))
        .push(Box::new(NonTerminal::new("table-name")))
        .next_row()
        .push(Box::new(Terminal::new("USING")))
        .push(Box::new(NonTerminal::new("module-name")))
        .push(Box::new(
            Optional::new(Box::new(
                Sequence::default()
                    .push(Box::new(Terminal::new("(")))
                    .push(Box::new(
                        Repeat::new(Box::new(
                            NonTerminal::new("module-argument")
                        ))
                    ))
                    .push(Box::new(Terminal::new(")")))
            ))
        ));
    println!("{}", diagram);
}