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:
parent
a81769c3fd
commit
87051c3cb6
@ -82,7 +82,7 @@ mod tests {
|
|||||||
let req = super::Request {
|
let req = super::Request {
|
||||||
limit: Some(uint!(10)),
|
limit: Some(uint!(10)),
|
||||||
since: Some("hello"),
|
since: Some("hello"),
|
||||||
server: Some(&server_name!("test.tld")),
|
server: Some(server_name!("test.tld")),
|
||||||
}
|
}
|
||||||
.try_into_http_request::<Vec<u8>>(
|
.try_into_http_request::<Vec<u8>>(
|
||||||
"https://homeserver.tld",
|
"https://homeserver.tld",
|
||||||
|
@ -47,8 +47,8 @@ mod tests {
|
|||||||
fn serialization() {
|
fn serialization() {
|
||||||
let mut content = DirectEventContent(BTreeMap::new());
|
let mut content = DirectEventContent(BTreeMap::new());
|
||||||
let server_name = server_name!("ruma.io");
|
let server_name = server_name!("ruma.io");
|
||||||
let alice = UserId::new(&server_name);
|
let alice = UserId::new(server_name);
|
||||||
let room = vec![RoomId::new(&server_name)];
|
let room = vec![RoomId::new(server_name)];
|
||||||
|
|
||||||
content.insert(alice.clone(), room.clone());
|
content.insert(alice.clone(), room.clone());
|
||||||
|
|
||||||
@ -66,8 +66,8 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn deserialization() {
|
fn deserialization() {
|
||||||
let server_name = server_name!("ruma.io");
|
let server_name = server_name!("ruma.io");
|
||||||
let alice = UserId::new(&server_name);
|
let alice = UserId::new(server_name);
|
||||||
let rooms = vec![RoomId::new(&server_name), RoomId::new(&server_name)];
|
let rooms = vec![RoomId::new(server_name), RoomId::new(server_name)];
|
||||||
|
|
||||||
let json_data = json!({
|
let json_data = json!({
|
||||||
"content": {
|
"content": {
|
||||||
|
@ -494,7 +494,7 @@ mod tests {
|
|||||||
&& third_party_displayname == "alice"
|
&& third_party_displayname == "alice"
|
||||||
&& mxid == "@alice:example.org"
|
&& mxid == "@alice:example.org"
|
||||||
&& signatures == btreemap! {
|
&& 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()
|
server_signing_key_id!("ed25519:3").to_owned() => "foobar".to_owned()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -579,7 +579,7 @@ mod tests {
|
|||||||
&& third_party_displayname == "alice"
|
&& third_party_displayname == "alice"
|
||||||
&& mxid == "@alice:example.org"
|
&& mxid == "@alice:example.org"
|
||||||
&& signatures == btreemap! {
|
&& 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()
|
server_signing_key_id!("ed25519:3").to_owned() => "foobar".to_owned()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -653,7 +653,7 @@ mod tests {
|
|||||||
&& third_party_displayname == "alice"
|
&& third_party_displayname == "alice"
|
||||||
&& mxid == "@alice:example.org"
|
&& mxid == "@alice:example.org"
|
||||||
&& signatures == btreemap! {
|
&& 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()
|
server_signing_key_id!("ed25519:3").to_owned() => "foobar".to_owned()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,16 +38,16 @@ mod tests {
|
|||||||
RoomPinnedEventsEventContent { pinned: Vec::new() };
|
RoomPinnedEventsEventContent { pinned: Vec::new() };
|
||||||
let server_name = server_name!("example.com");
|
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 {
|
let event = StateEvent {
|
||||||
content: content.clone(),
|
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()),
|
origin_server_ts: MilliSecondsSinceUnixEpoch(1_432_804_485_886_u64.try_into().unwrap()),
|
||||||
prev_content: None,
|
prev_content: None,
|
||||||
room_id: RoomId::new(&server_name),
|
room_id: RoomId::new(server_name),
|
||||||
sender: UserId::new(&server_name),
|
sender: UserId::new(server_name),
|
||||||
state_key: "".into(),
|
state_key: "".into(),
|
||||||
unsigned: Unsigned::default(),
|
unsigned: Unsigned::default(),
|
||||||
};
|
};
|
||||||
|
@ -57,7 +57,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn space_child_serialization() {
|
fn space_child_serialization() {
|
||||||
let content = SpaceChildEventContent {
|
let content = SpaceChildEventContent {
|
||||||
via: Some(vec![server_name!("example.com")]),
|
via: Some(vec![server_name!("example.com").to_owned()]),
|
||||||
order: Some("uwu".to_owned()),
|
order: Some("uwu".to_owned()),
|
||||||
suggested: Some(false),
|
suggested: Some(false),
|
||||||
};
|
};
|
||||||
|
@ -45,7 +45,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn space_parent_serialization() {
|
fn space_parent_serialization() {
|
||||||
let content = SpaceParentEventContent {
|
let content = SpaceParentEventContent {
|
||||||
via: Some(vec![server_name!("example.com")]),
|
via: Some(vec![server_name!("example.com").to_owned()]),
|
||||||
canonical: true,
|
canonical: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ fn serialize_pdu_as_v1() {
|
|||||||
server_signing_key_id!("ed25519:key_version").to_owned(),
|
server_signing_key_id!("ed25519:key_version").to_owned(),
|
||||||
"86BytesOfSignatureOfTheRedactedEvent".into(),
|
"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();
|
let mut unsigned = BTreeMap::new();
|
||||||
unsigned.insert("somekey".into(), to_raw_json_value(&json!({ "a": 456 })).unwrap());
|
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(),
|
server_signing_key_id!("ed25519:key_version").to_owned(),
|
||||||
"86BytesOfSignatureOfTheRedactedEvent".into(),
|
"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();
|
let mut unsigned = BTreeMap::new();
|
||||||
unsigned.insert("somekey".into(), to_raw_json_value(&json!({ "a": 456 })).unwrap());
|
unsigned.insert("somekey".into(), to_raw_json_value(&json!({ "a": 456 })).unwrap());
|
||||||
|
@ -103,9 +103,7 @@ pub fn server_name(input: TokenStream) -> TokenStream {
|
|||||||
assert!(server_name::validate(&id.value()).is_ok(), "Invalid server_name");
|
assert!(server_name::validate(&id.value()).is_ok(), "Invalid server_name");
|
||||||
|
|
||||||
let output = quote! {
|
let output = quote! {
|
||||||
<::std::boxed::Box::<#dollar_crate::ServerName> as ::std::convert::TryFrom<&str>>::try_from(
|
<&#dollar_crate::ServerName as ::std::convert::TryFrom<&str>>::try_from(#id).unwrap()
|
||||||
#id,
|
|
||||||
).unwrap()
|
|
||||||
};
|
};
|
||||||
|
|
||||||
output.into()
|
output.into()
|
||||||
|
@ -114,7 +114,7 @@ mod tests {
|
|||||||
fn generate_random_valid_event_id() {
|
fn generate_random_valid_event_id() {
|
||||||
use crate::server_name;
|
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();
|
let id_str = event_id.as_str();
|
||||||
|
|
||||||
assert!(id_str.starts_with('$'));
|
assert!(id_str.starts_with('$'));
|
||||||
|
@ -104,7 +104,7 @@ mod tests {
|
|||||||
fn generate_random_valid_room_id() {
|
fn generate_random_valid_room_id() {
|
||||||
use crate::server_name;
|
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();
|
let id_str = room_id.as_str();
|
||||||
|
|
||||||
assert!(id_str.starts_with('!'));
|
assert!(id_str.starts_with('!'));
|
||||||
|
@ -113,7 +113,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn parse_valid_user_id() {
|
fn parse_valid_user_id() {
|
||||||
let server_name = server_name!("example.com");
|
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.");
|
.expect("Failed to create UserId.");
|
||||||
assert_eq!(user_id.as_str(), "@carl:example.com");
|
assert_eq!(user_id.as_str(), "@carl:example.com");
|
||||||
assert_eq!(user_id.localpart(), "carl");
|
assert_eq!(user_id.localpart(), "carl");
|
||||||
@ -125,7 +125,7 @@ mod tests {
|
|||||||
fn parse_valid_user_id_parts() {
|
fn parse_valid_user_id_parts() {
|
||||||
let server_name = server_name!("example.com");
|
let server_name = server_name!("example.com");
|
||||||
let user_id =
|
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.as_str(), "@carl:example.com");
|
||||||
assert_eq!(user_id.localpart(), "carl");
|
assert_eq!(user_id.localpart(), "carl");
|
||||||
assert_eq!(user_id.server_name(), "example.com");
|
assert_eq!(user_id.server_name(), "example.com");
|
||||||
@ -145,7 +145,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn parse_valid_historical_user_id() {
|
fn parse_valid_historical_user_id() {
|
||||||
let server_name = server_name!("example.com");
|
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.");
|
.expect("Failed to create UserId.");
|
||||||
assert_eq!(user_id.as_str(), "@a%b[irc]:example.com");
|
assert_eq!(user_id.as_str(), "@a%b[irc]:example.com");
|
||||||
assert_eq!(user_id.localpart(), "a%b[irc]");
|
assert_eq!(user_id.localpart(), "a%b[irc]");
|
||||||
@ -156,7 +156,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn parse_valid_historical_user_id_parts() {
|
fn parse_valid_historical_user_id_parts() {
|
||||||
let server_name = server_name!("example.com");
|
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.");
|
.expect("Failed to create UserId.");
|
||||||
assert_eq!(user_id.as_str(), "@a%b[irc]:example.com");
|
assert_eq!(user_id.as_str(), "@a%b[irc]:example.com");
|
||||||
assert_eq!(user_id.localpart(), "a%b[irc]");
|
assert_eq!(user_id.localpart(), "a%b[irc]");
|
||||||
@ -175,7 +175,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn generate_random_valid_user_id() {
|
fn generate_random_valid_user_id() {
|
||||||
let server_name = server_name!("example.com");
|
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.localpart().len(), 12);
|
||||||
assert_eq!(user_id.server_name(), "example.com");
|
assert_eq!(user_id.server_name(), "example.com");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user