matrix_uri 0.1.1

A crate for parsing Matrix URIs according to both matrix.to and MSC2312
Documentation

matrix_uri

Coverage Pipeline
coverage report pipeline status

Deprecation Notice

Ruma has support for parsing both types of Matrix URIs as of version 0.5.0, thus this crate is now deprecated.

Original Description

A crate for building and parsing Matrix URIs according to both the matrix.to specification and also MSC2312 (matrix://).

Optionally provides conversion to types from ruma_identifiers with the ruma feature

Usage

Building

let uri = crate::MatrixUri::new(
            crate::MatrixId::new(crate::IdType::UserId, String::from("cute:some.url")),
            None,
            None,
            Some(vec![String::from("headpat.services"), String::from("cute.local")]),
            Some(crate::MatrixUriAction::Chat),
        )
        .unwrap();

println!("{} with {}", uri.action().unwrap().to_string(), uri.mxid.to_string()); // `chat with @cute:some.url`
println!("{}", uri.matrix_uri_string()); // `matrix:u/cute%3Asome.url?action=chat&via=headpat.services&via=cute.local`
println!("{}", uri.matrix_to_string()); // `https://matrix.to/#/%40cute%3Asome.url?action=chat&via=headpat.services&via=cute.local`

Parsing

let uri = matrix_uri::MatrixUri::from_str("matrix:u/her:example.org?action=chat").unwrap();

println!("{} - {:?}", uri.mxid.to_string(), uri.action().unwrap()); // `@her:example.org - Chat`

Docs

Can be viewed from source by running cargo doc --open

Pre-commit usage

  1. If not installed, install with your package manager, or pip install --user pre-commit
  2. Run pre-commit autoupdate to update the pre-commit config to use the newest template
  3. Run pre-commit install to install the pre-commit hooks to your local environment