About rhai-url

License crates.io crates.io API Docs

This crate provides url::Url access for the [Rhai] scripting language.

Usage

Cargo.toml

toml [dependencies] rhai-url = "0.0.2"

[Rhai] script

```js // create a new Url let url = Url("http://example.com/?q=query");

// get the absolute url as a string print(url.href); // print 'http://example.com/?q=query' print(url.to_string()); // print 'http://example.com/?q=query'

// get the url query string, without the leading ? print(url.query); // print 'q=query'

// get the url fragment print(url.fragment); // print ''

// hash is an alias of fragment print(url.hash); // print ''

// clear the query url.query_clear(); print(url.query); // print ''

// remove a query key url.query_remove("q");

// queryremove with no arguments will clear the query string url.queryremove();

// adds a query key value pair into the query string url.query_append("q", "name");

```

You can see an example on how to use those function in the tests.

Rust source

```rust use rhai::{Engine, EvalAltResult}; use rhai::packages::Package; use rhai_url::UrlPackage; use url::Url;

fn main() -> Result<(), Box> { // Create Rhai scripting engine let mut engine = Engine::new();

// Create url package and add the package into the engine
let package = UrlPackage::new();
package.register_into_engine(&mut engine);

// Print the url
let url = engine.eval::<Url>(r#"Url("http://test.dev/")"#)?;

println!("{}", url);

// Print the url string, equivalent of to_string()
let href = engine.eval::<String>(r#"Url("http://test.dev/").href"#)?;

println!("{}", href);

Ok(())

} ```

Features

| Feature | Default | Description | | :--------: | :------: | ---------------------------------------------------- | | no_index | disabled | Enables support for no_index builds of [Rhai] | | metadata | disabled | Enables support for generating package documentation |