identifiers: Make server_name! macro return a reference instead of an owned value

It is easy to turn it into an owned value through `.to_owned()`.
The reverse was not possible without tying the reference to the lifetime
of a temporary variable.
This commit is contained in:
Jonas Platte 2021-11-26 00:34:21 +01:00
parent a81769c3fd
commit 87051c3cb6
No known key found for this signature in database
GPG Key ID: 7D261D771D915378
11 changed files with 25 additions and 27 deletions

View File

@ -82,7 +82,7 @@ mod tests {
let req = super::Request {
limit: Some(uint!(10)),
since: Some("hello"),
server: Some(&server_name!("test.tld")),
server: Some(server_name!("test.tld")),
}
.try_into_http_request::<Vec<u8>>(
"https://homeserver.tld",

View File

@ -47,8 +47,8 @@ mod tests {
fn serialization() {
let mut content = DirectEventContent(BTreeMap::new());
let server_name = server_name!("ruma.io");
let alice = UserId::new(&server_name);
let room = vec![RoomId::new(&server_name)];
let alice = UserId::new(server_name);
let room = vec![RoomId::new(server_name)];
content.insert(alice.clone(), room.clone());
@ -66,8 +66,8 @@ mod tests {
#[test]
fn deserialization() {
let server_name = server_name!("ruma.io");
let alice = UserId::new(&server_name);
let rooms = vec![RoomId::new(&server_name), RoomId::new(&server_name)];
let alice = UserId::new(server_name);
let rooms = vec![RoomId::new(server_name), RoomId::new(server_name)];
let json_data = json!({
"content": {

View File

@ -494,7 +494,7 @@ mod tests {
&& third_party_displayname == "alice"
&& mxid == "@alice:example.org"
&& signatures == btreemap! {
server_name!("magic.forest") => btreemap! {
server_name!("magic.forest").to_owned() => btreemap! {
server_signing_key_id!("ed25519:3").to_owned() => "foobar".to_owned()
}
}
@ -579,7 +579,7 @@ mod tests {
&& third_party_displayname == "alice"
&& mxid == "@alice:example.org"
&& signatures == btreemap! {
server_name!("magic.forest") => btreemap! {
server_name!("magic.forest").to_owned() => btreemap! {
server_signing_key_id!("ed25519:3").to_owned() => "foobar".to_owned()
}
}
@ -653,7 +653,7 @@ mod tests {
&& third_party_displayname == "alice"
&& mxid == "@alice:example.org"
&& signatures == btreemap! {
server_name!("magic.forest") => btreemap! {
server_name!("magic.forest").to_owned() => btreemap! {
server_signing_key_id!("ed25519:3").to_owned() => "foobar".to_owned()
}
}

View File

@ -38,16 +38,16 @@ mod tests {
RoomPinnedEventsEventContent { pinned: Vec::new() };
let server_name = server_name!("example.com");
content.pinned.push(EventId::new(&server_name));
content.pinned.push(EventId::new(&server_name));
content.pinned.push(EventId::new(server_name));
content.pinned.push(EventId::new(server_name));
let event = StateEvent {
content: content.clone(),
event_id: EventId::new(&server_name),
event_id: EventId::new(server_name),
origin_server_ts: MilliSecondsSinceUnixEpoch(1_432_804_485_886_u64.try_into().unwrap()),
prev_content: None,
room_id: RoomId::new(&server_name),
sender: UserId::new(&server_name),
room_id: RoomId::new(server_name),
sender: UserId::new(server_name),
state_key: "".into(),
unsigned: Unsigned::default(),
};

View File

@ -57,7 +57,7 @@ mod tests {
#[test]
fn space_child_serialization() {
let content = SpaceChildEventContent {
via: Some(vec![server_name!("example.com")]),
via: Some(vec![server_name!("example.com").to_owned()]),
order: Some("uwu".to_owned()),
suggested: Some(false),
};

View File

@ -45,7 +45,7 @@ mod tests {
#[test]
fn space_parent_serialization() {
let content = SpaceParentEventContent {
via: Some(vec![server_name!("example.com")]),
via: Some(vec![server_name!("example.com").to_owned()]),
canonical: true,
};

View File

@ -21,7 +21,7 @@ fn serialize_pdu_as_v1() {
server_signing_key_id!("ed25519:key_version").to_owned(),
"86BytesOfSignatureOfTheRedactedEvent".into(),
);
signatures.insert(server_name!("example.com"), inner_signature);
signatures.insert(server_name!("example.com").to_owned(), inner_signature);
let mut unsigned = BTreeMap::new();
unsigned.insert("somekey".into(), to_raw_json_value(&json!({ "a": 456 })).unwrap());
@ -88,7 +88,7 @@ fn serialize_pdu_as_v3() {
server_signing_key_id!("ed25519:key_version").to_owned(),
"86BytesOfSignatureOfTheRedactedEvent".into(),
);
signatures.insert(server_name!("example.com"), inner_signature);
signatures.insert(server_name!("example.com").to_owned(), inner_signature);
let mut unsigned = BTreeMap::new();
unsigned.insert("somekey".into(), to_raw_json_value(&json!({ "a": 456 })).unwrap());

View File

@ -103,9 +103,7 @@ pub fn server_name(input: TokenStream) -> TokenStream {
assert!(server_name::validate(&id.value()).is_ok(), "Invalid server_name");
let output = quote! {
<::std::boxed::Box::<#dollar_crate::ServerName> as ::std::convert::TryFrom<&str>>::try_from(
#id,
).unwrap()
<&#dollar_crate::ServerName as ::std::convert::TryFrom<&str>>::try_from(#id).unwrap()
};
output.into()

View File

@ -114,7 +114,7 @@ mod tests {
fn generate_random_valid_event_id() {
use crate::server_name;
let event_id = EventId::new(&server_name!("example.com"));
let event_id = EventId::new(server_name!("example.com"));
let id_str = event_id.as_str();
assert!(id_str.starts_with('$'));

View File

@ -104,7 +104,7 @@ mod tests {
fn generate_random_valid_room_id() {
use crate::server_name;
let room_id = RoomId::new(&server_name!("example.com"));
let room_id = RoomId::new(server_name!("example.com"));
let id_str = room_id.as_str();
assert!(id_str.starts_with('!'));

View File

@ -113,7 +113,7 @@ mod tests {
#[test]
fn parse_valid_user_id() {
let server_name = server_name!("example.com");
let user_id = UserId::parse_with_server_name("@carl:example.com", &server_name)
let user_id = UserId::parse_with_server_name("@carl:example.com", server_name)
.expect("Failed to create UserId.");
assert_eq!(user_id.as_str(), "@carl:example.com");
assert_eq!(user_id.localpart(), "carl");
@ -125,7 +125,7 @@ mod tests {
fn parse_valid_user_id_parts() {
let server_name = server_name!("example.com");
let user_id =
UserId::parse_with_server_name("carl", &server_name).expect("Failed to create UserId.");
UserId::parse_with_server_name("carl", server_name).expect("Failed to create UserId.");
assert_eq!(user_id.as_str(), "@carl:example.com");
assert_eq!(user_id.localpart(), "carl");
assert_eq!(user_id.server_name(), "example.com");
@ -145,7 +145,7 @@ mod tests {
#[test]
fn parse_valid_historical_user_id() {
let server_name = server_name!("example.com");
let user_id = UserId::parse_with_server_name("@a%b[irc]:example.com", &server_name)
let user_id = UserId::parse_with_server_name("@a%b[irc]:example.com", server_name)
.expect("Failed to create UserId.");
assert_eq!(user_id.as_str(), "@a%b[irc]:example.com");
assert_eq!(user_id.localpart(), "a%b[irc]");
@ -156,7 +156,7 @@ mod tests {
#[test]
fn parse_valid_historical_user_id_parts() {
let server_name = server_name!("example.com");
let user_id = UserId::parse_with_server_name("a%b[irc]", &server_name)
let user_id = UserId::parse_with_server_name("a%b[irc]", server_name)
.expect("Failed to create UserId.");
assert_eq!(user_id.as_str(), "@a%b[irc]:example.com");
assert_eq!(user_id.localpart(), "a%b[irc]");
@ -175,7 +175,7 @@ mod tests {
#[test]
fn generate_random_valid_user_id() {
let server_name = server_name!("example.com");
let user_id = UserId::new(&server_name);
let user_id = UserId::new(server_name);
assert_eq!(user_id.localpart().len(), 12);
assert_eq!(user_id.server_name(), "example.com");