identifiers: Rename MatrixToRef to matrix_uri::MatrixToUri

This commit is contained in:
Kévin Commaille 2022-02-18 14:38:29 +01:00 committed by Jonas Platte
parent c5a6cf033f
commit 52268b5dc2
5 changed files with 21 additions and 19 deletions

View File

@ -32,7 +32,7 @@ pub use crate::{
event_id::EventId, event_id::EventId,
key_id::{DeviceSigningKeyId, KeyId, ServerSigningKeyId, SigningKeyId}, key_id::{DeviceSigningKeyId, KeyId, ServerSigningKeyId, SigningKeyId},
key_name::KeyName, key_name::KeyName,
matrix_to::MatrixToRef, matrix_uri::MatrixToUri,
mxc_uri::MxcUri, mxc_uri::MxcUri,
room_alias_id::RoomAliasId, room_alias_id::RoomAliasId,
room_id::RoomId, room_id::RoomId,
@ -51,6 +51,7 @@ pub use ruma_identifiers_validation::error::Error;
#[macro_use] #[macro_use]
mod macros; mod macros;
pub mod matrix_uri;
pub mod user_id; pub mod user_id;
mod client_secret; mod client_secret;
@ -60,7 +61,6 @@ mod device_key_id;
mod event_id; mod event_id;
mod key_id; mod key_id;
mod key_name; mod key_name;
mod matrix_to;
mod mxc_uri; mod mxc_uri;
mod room_alias_id; mod room_alias_id;
mod room_id; mod room_id;

View File

@ -1,3 +1,5 @@
//! Matrix URIs.
use std::fmt; use std::fmt;
use percent_encoding::{percent_encode, AsciiSet, CONTROLS}; use percent_encoding::{percent_encode, AsciiSet, CONTROLS};
@ -33,13 +35,13 @@ const TO_ENCODE: &AsciiSet = &CONTROLS
/// Turn it into a `matrix.to` URL through its `Display` implementation (i.e. by /// Turn it into a `matrix.to` URL through its `Display` implementation (i.e. by
/// interpolating it in a formatting macro or via `.to_string()`). /// interpolating it in a formatting macro or via `.to_string()`).
#[derive(Debug, PartialEq, Eq)] #[derive(Debug, PartialEq, Eq)]
pub struct MatrixToRef<'a> { pub struct MatrixToUri<'a> {
id: &'a str, id: &'a str,
event_id: Option<&'a EventId>, event_id: Option<&'a EventId>,
via: Vec<&'a ServerName>, via: Vec<&'a ServerName>,
} }
impl<'a> MatrixToRef<'a> { impl<'a> MatrixToUri<'a> {
pub(crate) fn new(id: &'a str, via: Vec<&'a ServerName>) -> Self { pub(crate) fn new(id: &'a str, via: Vec<&'a ServerName>) -> Self {
Self { id, event_id: None, via } Self { id, event_id: None, via }
} }
@ -49,7 +51,7 @@ impl<'a> MatrixToRef<'a> {
} }
} }
impl<'a> fmt::Display for MatrixToRef<'a> { impl<'a> fmt::Display for MatrixToUri<'a> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_str(BASE_URL)?; f.write_str(BASE_URL)?;
write!(f, "{}", percent_encode(self.id.as_bytes(), TO_ENCODE))?; write!(f, "{}", percent_encode(self.id.as_bytes(), TO_ENCODE))?;
@ -75,7 +77,7 @@ mod tests {
use crate::user_id; use crate::user_id;
#[test] #[test]
fn matrix_to_ref() { fn matrix_to_uri() {
assert_eq!( assert_eq!(
user_id!("@jplatte:notareal.hs").matrix_to_url().to_string(), user_id!("@jplatte:notareal.hs").matrix_to_url().to_string(),
"https://matrix.to/#/%40jplatte%3Anotareal.hs" "https://matrix.to/#/%40jplatte%3Anotareal.hs"

View File

@ -1,6 +1,6 @@
//! Matrix room alias identifiers. //! Matrix room alias identifiers.
use crate::{server_name::ServerName, EventId, MatrixToRef}; use crate::{server_name::ServerName, EventId, MatrixToUri};
/// A Matrix room alias ID. /// A Matrix room alias ID.
/// ///
@ -30,13 +30,13 @@ impl RoomAliasId {
} }
/// Create a `matrix.to` reference for this room alias ID. /// Create a `matrix.to` reference for this room alias ID.
pub fn matrix_to_url(&self) -> MatrixToRef<'_> { pub fn matrix_to_url(&self) -> MatrixToUri<'_> {
MatrixToRef::new(self.as_str(), Vec::new()) MatrixToUri::new(self.as_str(), Vec::new())
} }
/// Create a `matrix.to` reference for an event scoped under this room alias ID. /// Create a `matrix.to` reference for an event scoped under this room alias ID.
pub fn matrix_to_event_url<'a>(&'a self, ev_id: &'a EventId) -> MatrixToRef<'a> { pub fn matrix_to_event_url<'a>(&'a self, ev_id: &'a EventId) -> MatrixToUri<'a> {
MatrixToRef::event(self.as_str(), ev_id, Vec::new()) MatrixToUri::event(self.as_str(), ev_id, Vec::new())
} }
fn colon_idx(&self) -> usize { fn colon_idx(&self) -> usize {

View File

@ -1,6 +1,6 @@
//! Matrix room identifiers. //! Matrix room identifiers.
use crate::{EventId, MatrixToRef, ServerName}; use crate::{EventId, MatrixToUri, ServerName};
/// A Matrix room ID. /// A Matrix room ID.
/// ///
@ -55,13 +55,13 @@ impl RoomId {
pub fn matrix_to_url<'a>( pub fn matrix_to_url<'a>(
&'a self, &'a self,
via: impl IntoIterator<Item = &'a ServerName>, via: impl IntoIterator<Item = &'a ServerName>,
) -> MatrixToRef<'a> { ) -> MatrixToUri<'a> {
MatrixToRef::new(self.as_str(), via.into_iter().collect()) MatrixToUri::new(self.as_str(), via.into_iter().collect())
} }
/// Create a `matrix.to` reference for an event scoped under this room ID. /// Create a `matrix.to` reference for an event scoped under this room ID.
pub fn matrix_to_event_url<'a>(&'a self, ev_id: &'a EventId) -> MatrixToRef<'a> { pub fn matrix_to_event_url<'a>(&'a self, ev_id: &'a EventId) -> MatrixToUri<'a> {
MatrixToRef::event(self.as_str(), ev_id, Vec::new()) MatrixToUri::event(self.as_str(), ev_id, Vec::new())
} }
fn colon_idx(&self) -> usize { fn colon_idx(&self) -> usize {

View File

@ -2,7 +2,7 @@
use std::{rc::Rc, sync::Arc}; use std::{rc::Rc, sync::Arc};
use crate::{MatrixToRef, ServerName}; use crate::{MatrixToUri, ServerName};
/// A Matrix user ID. /// A Matrix user ID.
/// ///
@ -116,8 +116,8 @@ impl UserId {
/// display_name = "jplatte", /// display_name = "jplatte",
/// ); /// );
/// ``` /// ```
pub fn matrix_to_url(&self) -> MatrixToRef<'_> { pub fn matrix_to_url(&self) -> MatrixToUri<'_> {
MatrixToRef::new(self.as_str(), Vec::new()) MatrixToUri::new(self.as_str(), Vec::new())
} }
fn colon_idx(&self) -> usize { fn colon_idx(&self) -> usize {