url-match 0.1.2

URL match patterns library
Documentation

url-match

URL match patterns library.

Demo

$ cargo run --example matcher_example
$ cargo run --example matchers_example

Unit Test

$ cargo test

Install

Add this to your Cargo.toml:

[dependencies]
url-match = "0.1"

and this to your crate root:

extern crate url_match;

use url_match::matcher;

Usage

extern crate url_match;

use url_match::matcher;

fn main() {

    matcher("http://example.com/settings/:type", "http://example.com/settings/profile");
    /* { 
            type : profile
        }
    */
    matcher("http://example.com/settings/:type", "http://example.com/settings/admin");
    /* {
            type : admin
        }
    */
    matcher("http://example.com/users/:name/:type", "http://example.com/users/u4bi/repos");
    /* { 
            type : repos
        }
    */
    matcher("http://example.com/users/:name/:type", "http://example.com/users/u4bi/orgs");
    /* {
            type : orgs
        }
    */
    matcher("http://example.com/:name?tab=:panel", "http://example.com/u4bi?tab=stars");
    /* { 
            name  : u4bi,
            panel : stars
        }
    */
    matcher("http://example.com/:name/?tab=:panel", "http://example.com/u4bi/?tab=stars");
    /* { 
            name  : u4bi,
            panel : starts
        }
    */


    matcher(
        "http://example.com/?name=:NAME&level=:LEVEL&weapon=:WEAPON",
        "http://example.com/?name=u4bi&level=17&weapon=ak-47");
    /* { 
            NAME   : 'u4bi', 
            LEVEL  : '17', 
            WEAPON : 'ak-47'
        }
    */

    matcher("https://:SUB_DOMAIN.github.com", "https://api.github.com");
    /* { 
            SUB_DOMAIN : 'api'
        }
    */

}

Library URL
url-match https://crates.io/crates/url-match

License

MIT