This repository has been archived on 2025-08-04. You can view files and clone it, but cannot push or open issues or pull requests.
rhaj/_archive/rhai_engine/rhaibook/lib/rhai-url.md
2025-04-04 08:28:07 +02:00

76 lines
1.5 KiB
Markdown

`rhai-url`: Working with Urls
=============================
{{#include ../links.md}}
`rhai-url` is an independent Rhai [package] that enables working with Urls via the
[`url`](https://crates.io/crates/url) crate.
```admonish info.side "Documentation"
See <https://docs.rs/rhai-url> for the list of functions.
```
> On `crates.io`: [`rhai-url`](https://crates.io/crates/rhai-url)
>
> On `GitHub`: [`rhaiscript/rhai-url`](https://github.com/rhaiscript/rhai-url)
>
> Package name: `FilesystemPackage`
Dependency
----------
`Cargo.toml`:
```toml
[dependencies]
rhai = "{{version}}"
rhai-url = "0.0.1" # use rhai-url crate
```
Load Package into [`Engine`]
----------------------------
```rust
use rhai::Engine;
use rhai::packages::Package; // needed for 'Package' trait
use rhai_url::UrlPackage;
let mut engine = Engine::new();
// Create new 'UrlPackage' instance
let url = UrlPackage::new();
// Load the package into the `Engine`
url.register_into_engine(&mut engine);
```
Example
-------
```rust
let url = Url("http://example.com/?q=query");
print(url); // prints 'http://example.com/?q=query'
print(url.href); // prints 'http://example.com/?q=query'
print(url.query); // prints 'q=query'
// fragment and hash are aliases
print(url.fragment); // prints ''
print(url.hash); // prints ''
url.query_clear();
print(url.query); // prints ''
url.query_remove("q");
url.query_append("q", "name");
print(url); // prints 'http://example.com/?q=name'
```