#url #template #string

urltemplate

Lightweight URL templates. Master URLs with placeholders!

6 releases

✓ Uses Rust 2018 edition

0.1.5 Mar 12, 2019
0.1.4 Feb 3, 2019

#101 in Parser implementations

Download history 46/week @ 2019-01-30 5/week @ 2019-02-06 1/week @ 2019-02-13 7/week @ 2019-02-20 16/week @ 2019-02-27 8/week @ 2019-03-06 18/week @ 2019-03-13 66/week @ 2019-03-20 9/week @ 2019-03-27 8/week @ 2019-04-03 2/week @ 2019-04-10 8/week @ 2019-04-24

58 downloads per month

MIT license

9KB
152 lines

Urltemplate

Convert URL template containing placeholders into url. Whenever you need to turn https://example.com/?utm_source={source}&key2={value2} into URL like https://example.com/?utm_source=github&key2=

Core idea is to have minimalistic and comfortable to use placeholders for http/https URLs. Comfortable means to be easily used in any web-related project, UTF-safe.

Warning: This crate is experimental. Also, it is being actively developed.

Usage

extern crate urltemplate;

use urltemplate::UrlTemplate;

use std::collections::HashMap;
let mut params = HashMap::new();
params.insert("source".to_string(), "url-template-crate-❤".to_string());

let url_with_placeholders = UrlTemplate::from("https://www.mozilla.org/?utm_source={source}");

let url_as_string =  url_with_placeholders.substitute_str(&params).expect("valid url");
let url_as_url =  url_with_placeholders.substitute(&params).expect("valid url");

assert_eq!(url_as_string, "https://www.mozilla.org/?utm_source=url-template-crate-❤");
assert_eq!(url_as_url.query(), Some("utm_source=url-template-crate-❤"));

Notes

  • UTF safe
  • no external dependencies (only url crate is required)
  • compact and clean implementation

Dependencies

~1.5MB
~31K SLoC