identifiers: Shorten RoomVersionId variant names

This commit is contained in:
Jonas Platte 2021-11-26 00:50:01 +01:00
parent f03065793b
commit 6b76d7813e
No known key found for this signature in database
GPG Key ID: 7D261D771D915378
14 changed files with 104 additions and 116 deletions

View File

@ -142,11 +142,11 @@ impl RoomVersionsCapability {
/// Returns whether all fields have their default value.
pub fn is_default(&self) -> bool {
self.default == RoomVersionId::Version1
self.default == RoomVersionId::V1
&& self.available.len() == 1
&& self
.available
.get(&RoomVersionId::Version1)
.get(&RoomVersionId::V1)
.map(|stability| *stability == RoomVersionStability::Stable)
.unwrap_or(false)
}
@ -155,8 +155,8 @@ impl RoomVersionsCapability {
impl Default for RoomVersionsCapability {
fn default() -> Self {
Self {
default: RoomVersionId::Version1,
available: btreemap! { RoomVersionId::Version1 => RoomVersionStability::Stable },
default: RoomVersionId::V1,
available: btreemap! { RoomVersionId::V1 => RoomVersionStability::Stable },
}
}
}

View File

@ -35,11 +35,11 @@ impl RedactContent for RoomAliasesEventContent {
// We compare the long way to avoid pre version 6 behavior if/when
// a new room version is introduced.
let aliases = match version {
RoomVersionId::Version1
| RoomVersionId::Version2
| RoomVersionId::Version3
| RoomVersionId::Version4
| RoomVersionId::Version5 => Some(self.aliases),
RoomVersionId::V1
| RoomVersionId::V2
| RoomVersionId::V3
| RoomVersionId::V4
| RoomVersionId::V5 => Some(self.aliases),
_ => None,
};

View File

@ -30,7 +30,7 @@ pub struct RoomCreateEventContent {
/// The version of the room.
///
/// Defaults to `RoomVersionId::Version1`.
/// Defaults to `RoomVersionId::V1`.
#[serde(default = "default_room_version_id")]
pub room_version: RoomVersionId,
@ -102,7 +102,7 @@ impl PreviousRoom {
/// Used to default the `room_version` field to room version 1.
fn default_room_version_id() -> RoomVersionId {
RoomVersionId::Version1
RoomVersionId::V1
}
#[cfg(test)]
@ -121,7 +121,7 @@ mod tests {
let content = RoomCreateEventContent {
creator: user_id!("@carl:example.com").to_owned(),
federate: false,
room_version: RoomVersionId::Version4,
room_version: RoomVersionId::V4,
predecessor: None,
#[cfg(feature = "unstable-pre-spec")]
room_type: None,
@ -142,7 +142,7 @@ mod tests {
let content = RoomCreateEventContent {
creator: user_id!("@carl:example.com").to_owned(),
federate: false,
room_version: RoomVersionId::Version4,
room_version: RoomVersionId::V4,
predecessor: None,
room_type: Some(RoomType::Space),
};
@ -170,7 +170,7 @@ mod tests {
RoomCreateEventContent {
creator,
federate: true,
room_version: RoomVersionId::Version4,
room_version: RoomVersionId::V4,
predecessor: None,
#[cfg(feature = "unstable-pre-spec")]
room_type: None,
@ -193,7 +193,7 @@ mod tests {
RoomCreateEventContent {
creator,
federate: true,
room_version: RoomVersionId::Version4,
room_version: RoomVersionId::V4,
predecessor: None,
room_type
} if creator == "@carl:example.com" && room_type == Some(RoomType::Space)

View File

@ -296,7 +296,7 @@ fn redact_method_properly_redacts() {
let event: AnyMessageEvent = from_json_value(ev).unwrap();
assert_matches!(
event.redact(redaction, &RoomVersionId::Version6),
event.redact(redaction, &RoomVersionId::V6),
AnyRedactedMessageEvent::RoomMessage(RedactedMessageEvent {
content: RedactedRoomMessageEventContent { .. },
event_id,
@ -323,10 +323,7 @@ fn redact_message_content() {
let raw_json = to_raw_value(&json).unwrap();
let content = RoomMessageEventContent::from_parts("m.room.message", &raw_json).unwrap();
assert_matches!(
content.redact(&RoomVersionId::Version6),
RedactedRoomMessageEventContent { .. }
);
assert_matches!(content.redact(&RoomVersionId::V6), RedactedRoomMessageEventContent { .. });
}
#[test]
@ -341,7 +338,7 @@ fn redact_state_content() {
let content = RoomCreateEventContent::from_parts("m.room.create", &raw_json).unwrap();
assert_matches!(
content.redact(&RoomVersionId::Version6),
content.redact(&RoomVersionId::V6),
RedactedRoomCreateEventContent {
creator,
..

View File

@ -25,7 +25,7 @@ ruma_api! {
/// The room versions the sending has support for.
///
/// Defaults to `&[RoomVersionId::Version1]`.
/// Defaults to `&[RoomVersionId::V1]`.
#[ruma_api(query)]
pub ver: &'a [RoomVersionId],
}
@ -44,7 +44,7 @@ ruma_api! {
impl<'a> Request<'a> {
/// Creates a `Request` with the given room ID and user ID.
pub fn new(room_id: &'a RoomId, user_id: &'a UserId) -> Self {
Self { room_id, user_id, ver: &[RoomVersionId::Version1] }
Self { room_id, user_id, ver: &[RoomVersionId::V1] }
}
}

View File

@ -26,7 +26,7 @@ ruma_api! {
/// The room versions the sending server has support for.
///
/// Defaults to `&[RoomVersionId::Version1]`.
/// Defaults to `&[RoomVersionId::V1]`.
#[ruma_api(query)]
#[serde(default = "default_ver", skip_serializing_if = "is_default_ver")]
pub ver: &'a [RoomVersionId],
@ -43,17 +43,17 @@ ruma_api! {
}
fn default_ver() -> Vec<RoomVersionId> {
vec![RoomVersionId::Version1]
vec![RoomVersionId::V1]
}
fn is_default_ver(ver: &&[RoomVersionId]) -> bool {
**ver == [RoomVersionId::Version1]
**ver == [RoomVersionId::V1]
}
impl<'a> Request<'a> {
/// Creates a new `Request` with the given room id and user id.
pub fn new(room_id: &'a RoomId, user_id: &'a UserId) -> Self {
Self { room_id, user_id, ver: &[RoomVersionId::Version1] }
Self { room_id, user_id, ver: &[RoomVersionId::V1] }
}
}

View File

@ -9,6 +9,7 @@ Breaking changes:
(these *might* be converted into the same kind of type at some point in the future)
* The corresponding macros (and also `server_name!`) now return `'static` references instead of
owned values now use `.to_owned()` to get an owned copy
* Rename `RoomVersionId::Version{X}` variants to `RoomVersionId::V{X}`
# 0.20.0

View File

@ -25,34 +25,34 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer};
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
pub enum RoomVersionId {
/// A version 1 room.
Version1,
V1,
/// A version 2 room.
Version2,
V2,
/// A version 3 room.
Version3,
V3,
/// A version 4 room.
Version4,
V4,
/// A version 5 room.
Version5,
V5,
/// A version 6 room.
Version6,
V6,
/// A version 7 room.
#[cfg(feature = "unstable-pre-spec")]
Version7,
V7,
/// A version 8 room.
#[cfg(feature = "unstable-pre-spec")]
Version8,
V8,
/// A version 9 room.
#[cfg(feature = "unstable-pre-spec")]
Version9,
V9,
#[doc(hidden)]
_Custom(CustomRoomVersion),
@ -64,18 +64,18 @@ impl RoomVersionId {
// FIXME: Add support for non-`str`-deref'ing types for fallback to AsRefStr derive and
// implement this function in terms of `AsRef<str>`
match &self {
Self::Version1 => "1",
Self::Version2 => "2",
Self::Version3 => "3",
Self::Version4 => "4",
Self::Version5 => "5",
Self::Version6 => "6",
Self::V1 => "1",
Self::V2 => "2",
Self::V3 => "3",
Self::V4 => "4",
Self::V5 => "5",
Self::V6 => "6",
#[cfg(feature = "unstable-pre-spec")]
Self::Version7 => "7",
Self::V7 => "7",
#[cfg(feature = "unstable-pre-spec")]
Self::Version8 => "8",
Self::V8 => "8",
#[cfg(feature = "unstable-pre-spec")]
Self::Version9 => "9",
Self::V9 => "9",
Self::_Custom(version) => version.as_str(),
}
}
@ -89,18 +89,18 @@ impl RoomVersionId {
impl From<RoomVersionId> for String {
fn from(id: RoomVersionId) -> Self {
match id {
RoomVersionId::Version1 => "1".to_owned(),
RoomVersionId::Version2 => "2".to_owned(),
RoomVersionId::Version3 => "3".to_owned(),
RoomVersionId::Version4 => "4".to_owned(),
RoomVersionId::Version5 => "5".to_owned(),
RoomVersionId::Version6 => "6".to_owned(),
RoomVersionId::V1 => "1".to_owned(),
RoomVersionId::V2 => "2".to_owned(),
RoomVersionId::V3 => "3".to_owned(),
RoomVersionId::V4 => "4".to_owned(),
RoomVersionId::V5 => "5".to_owned(),
RoomVersionId::V6 => "6".to_owned(),
#[cfg(feature = "unstable-pre-spec")]
RoomVersionId::Version7 => "7".to_owned(),
RoomVersionId::V7 => "7".to_owned(),
#[cfg(feature = "unstable-pre-spec")]
RoomVersionId::Version8 => "8".to_owned(),
RoomVersionId::V8 => "8".to_owned(),
#[cfg(feature = "unstable-pre-spec")]
RoomVersionId::Version9 => "9".to_owned(),
RoomVersionId::V9 => "9".to_owned(),
RoomVersionId::_Custom(version) => version.into(),
}
}
@ -160,18 +160,18 @@ where
S: AsRef<str> + Into<Box<str>>,
{
let version = match room_version_id.as_ref() {
"1" => RoomVersionId::Version1,
"2" => RoomVersionId::Version2,
"3" => RoomVersionId::Version3,
"4" => RoomVersionId::Version4,
"5" => RoomVersionId::Version5,
"6" => RoomVersionId::Version6,
"1" => RoomVersionId::V1,
"2" => RoomVersionId::V2,
"3" => RoomVersionId::V3,
"4" => RoomVersionId::V4,
"5" => RoomVersionId::V5,
"6" => RoomVersionId::V6,
#[cfg(feature = "unstable-pre-spec")]
"7" => RoomVersionId::Version7,
"7" => RoomVersionId::V7,
#[cfg(feature = "unstable-pre-spec")]
"8" => RoomVersionId::Version8,
"8" => RoomVersionId::V8,
#[cfg(feature = "unstable-pre-spec")]
"9" => RoomVersionId::Version9,
"9" => RoomVersionId::V9,
custom => {
ruma_identifiers_validation::room_version_id::validate(custom)?;
RoomVersionId::_Custom(CustomRoomVersion(room_version_id.into()))
@ -349,7 +349,7 @@ mod tests {
let deserialized = serde_json::from_str::<RoomVersionId>(r#""1""#)
.expect("Failed to convert RoomVersionId to JSON.");
assert_eq!(deserialized, RoomVersionId::Version1);
assert_eq!(deserialized, RoomVersionId::V1);
assert_eq!(
deserialized,

View File

@ -58,11 +58,11 @@ fn allowed_content_keys_for(event_type: &str, version: &RoomVersionId) -> &'stat
"users_default",
],
"m.room.aliases" => match version {
RoomVersionId::Version1
| RoomVersionId::Version2
| RoomVersionId::Version3
| RoomVersionId::Version4
| RoomVersionId::Version5 => &["aliases"],
RoomVersionId::V1
| RoomVersionId::V2
| RoomVersionId::V3
| RoomVersionId::V4
| RoomVersionId::V5 => &["aliases"],
// All other room versions, including custom ones, are treated by version 6 rules.
// TODO: Should we return an error for unknown versions instead?
_ => &[],
@ -387,9 +387,7 @@ pub fn reference_hash(
Ok(encode_config(
&hash,
match version {
RoomVersionId::Version1 | RoomVersionId::Version2 | RoomVersionId::Version3 => {
STANDARD_NO_PAD
}
RoomVersionId::V1 | RoomVersionId::V2 | RoomVersionId::V3 => STANDARD_NO_PAD,
// Room versions higher than version 3 are url safe base64 encoded
_ => URL_SAFE_NO_PAD,
},
@ -458,7 +456,7 @@ pub fn reference_hash(
/// ).unwrap();
///
/// // Hash and sign the JSON with the key pair.
/// assert!(hash_and_sign_event("domain", &key_pair, &mut object, &RoomVersionId::Version1).is_ok());
/// assert!(hash_and_sign_event("domain", &key_pair, &mut object, &RoomVersionId::V1).is_ok());
/// ```
///
/// This will modify the JSON from the structure shown to a structure like this:
@ -583,7 +581,7 @@ where
/// public_key_map.insert("domain".into(), public_key_set);
///
/// // Verify at least one signature for each entity in `public_key_map`.
/// let verification_result = verify_event(&public_key_map, &object, &RoomVersionId::Version6);
/// let verification_result = verify_event(&public_key_map, &object, &RoomVersionId::V6);
/// assert!(verification_result.is_ok());
/// assert!(matches!(verification_result.unwrap(), Verified::All));
/// ```
@ -790,7 +788,7 @@ fn servers_to_check_signatures(
}
match version {
RoomVersionId::Version1 | RoomVersionId::Version2 => match object.get("event_id") {
RoomVersionId::V1 | RoomVersionId::V2 => match object.get("event_id") {
Some(CanonicalJsonValue::String(raw_event_id)) => {
let event_id: Box<EventId> =
raw_event_id.parse().map_err(|e| Error::from(ParseError::EventId(e)))?;
@ -933,8 +931,7 @@ mod tests {
).unwrap();
let public_key_map = BTreeMap::new();
let verification_result =
verify_event(&public_key_map, &signed_event, &RoomVersionId::Version6);
let verification_result = verify_event(&public_key_map, &signed_event, &RoomVersionId::V6);
assert!(verification_result.is_ok());
let verification = verification_result.unwrap();
@ -987,8 +984,7 @@ mod tests {
add_key_to_map(&mut public_key_map, "domain-sender", &key_pair_sender);
add_key_to_map(&mut public_key_map, "domain-event", &key_pair_event);
let verification_result =
verify_event(&public_key_map, &signed_event, &RoomVersionId::Version1);
let verification_result = verify_event(&public_key_map, &signed_event, &RoomVersionId::V1);
assert!(verification_result.is_ok());
let verification = verification_result.unwrap();
@ -1023,8 +1019,7 @@ mod tests {
// Verify with an empty public key map should fail due to missing public keys
let public_key_map = BTreeMap::new();
let verification_result =
verify_event(&public_key_map, &signed_event, &RoomVersionId::Version6);
let verification_result = verify_event(&public_key_map, &signed_event, &RoomVersionId::V6);
assert!(verification_result.is_err());
let error_msg = verification_result.err().unwrap();
@ -1073,8 +1068,7 @@ mod tests {
sender_key_map.insert(version.to_string(), encoded_public_key);
public_key_map.insert("domain-sender".to_owned(), sender_key_map);
let verification_result =
verify_event(&public_key_map, &signed_event, &RoomVersionId::Version6);
let verification_result = verify_event(&public_key_map, &signed_event, &RoomVersionId::V6);
assert!(verification_result.is_err());
let error_msg = verification_result.err().unwrap();

View File

@ -341,7 +341,7 @@ mod tests {
}"#;
let mut object = from_json_str(json).unwrap();
hash_and_sign_event("domain", &key_pair, &mut object, &RoomVersionId::Version5).unwrap();
hash_and_sign_event("domain", &key_pair, &mut object, &RoomVersionId::V5).unwrap();
assert_eq!(
to_json_string(&object).unwrap(),
@ -374,7 +374,7 @@ mod tests {
}"#;
let mut object = from_json_str(json).unwrap();
hash_and_sign_event("domain", &key_pair, &mut object, &RoomVersionId::Version5).unwrap();
hash_and_sign_event("domain", &key_pair, &mut object, &RoomVersionId::V5).unwrap();
assert_eq!(
to_json_string(&object).unwrap(),
@ -415,6 +415,6 @@ mod tests {
}"#
).unwrap();
assert!(verify_event(&public_key_map, &value, &RoomVersionId::Version5).is_ok());
assert!(verify_event(&public_key_map, &value, &RoomVersionId::V5).is_ok());
}
}

View File

@ -66,7 +66,7 @@ fn resolution_shallow_auth_chain(c: &mut Criterion) {
let ev_map = store.0.clone();
let state_sets = [&state_at_bob, &state_at_charlie];
let _ = match state_res::resolve(
&RoomVersionId::Version6,
&RoomVersionId::V6,
state_sets,
state_sets
.iter()
@ -130,7 +130,7 @@ fn resolve_deeper_event_set(c: &mut Criterion) {
b.iter(|| {
let state_sets = [&state_set_a, &state_set_b];
let _ = match state_res::resolve(
&RoomVersionId::Version6,
&RoomVersionId::V6,
state_sets,
state_sets
.iter()

View File

@ -1039,7 +1039,7 @@ mod tests {
let ev_map: EventMap<Arc<StateEvent>> = store.0.clone();
let state_sets = [state_at_bob, state_at_charlie];
let resolved = match crate::resolve(
&RoomVersionId::Version2,
&RoomVersionId::V2,
&state_sets,
state_sets
.iter()
@ -1143,7 +1143,7 @@ mod tests {
let ev_map: EventMap<Arc<StateEvent>> = store.0.clone();
let state_sets = [state_set_a, state_set_b];
let resolved = match crate::resolve(
&RoomVersionId::Version6,
&RoomVersionId::V6,
&state_sets,
state_sets
.iter()

View File

@ -72,7 +72,7 @@ pub struct RoomVersion {
impl RoomVersion {
pub const VERSION1: Self = Self {
version: RoomVersionId::Version1,
version: RoomVersionId::V1,
disposition: RoomDisposition::Stable,
event_format: EventFormatVersion::V1,
state_res: StateResolutionVersion::V1,
@ -86,29 +86,26 @@ impl RoomVersion {
};
pub const VERSION2: Self = Self {
version: RoomVersionId::Version2,
version: RoomVersionId::V2,
state_res: StateResolutionVersion::V2,
..Self::VERSION1
};
pub const VERSION3: Self = Self {
version: RoomVersionId::Version3,
version: RoomVersionId::V3,
event_format: EventFormatVersion::V2,
extra_redaction_checks: true,
..Self::VERSION2
};
pub const VERSION4: Self = Self {
version: RoomVersionId::Version4,
event_format: EventFormatVersion::V3,
..Self::VERSION3
};
pub const VERSION4: Self =
Self { version: RoomVersionId::V4, event_format: EventFormatVersion::V3, ..Self::VERSION3 };
pub const VERSION5: Self =
Self { version: RoomVersionId::Version5, enforce_key_validity: true, ..Self::VERSION4 };
Self { version: RoomVersionId::V5, enforce_key_validity: true, ..Self::VERSION4 };
pub const VERSION6: Self = Self {
version: RoomVersionId::Version5,
version: RoomVersionId::V5,
special_case_aliases_auth: false,
strict_canonicaljson: true,
limit_notifications_power_levels: true,
@ -117,7 +114,7 @@ impl RoomVersion {
#[cfg(feature = "unstable-pre-spec")]
pub const VERSION7: Self = Self {
version: RoomVersionId::Version7,
version: RoomVersionId::V7,
// FIXME: once room version 7 is stabilized move this to version 8
disposition: RoomDisposition::Unstable,
allow_knocking: true,
@ -126,25 +123,25 @@ impl RoomVersion {
#[cfg(feature = "unstable-pre-spec")]
pub const VERSION8: Self =
Self { version: RoomVersionId::Version8, restricted_join_rules: true, ..Self::VERSION7 };
Self { version: RoomVersionId::V8, restricted_join_rules: true, ..Self::VERSION7 };
#[cfg(feature = "unstable-pre-spec")]
pub const VERSION9: Self = Self { version: RoomVersionId::Version9, ..Self::VERSION8 };
pub const VERSION9: Self = Self { version: RoomVersionId::V9, ..Self::VERSION8 };
pub fn new(version: &RoomVersionId) -> Result<Self> {
Ok(match version {
RoomVersionId::Version1 => Self::VERSION1,
RoomVersionId::Version2 => Self::VERSION2,
RoomVersionId::Version3 => Self::VERSION3,
RoomVersionId::Version4 => Self::VERSION4,
RoomVersionId::Version5 => Self::VERSION5,
RoomVersionId::Version6 => Self::VERSION6,
RoomVersionId::V1 => Self::VERSION1,
RoomVersionId::V2 => Self::VERSION2,
RoomVersionId::V3 => Self::VERSION3,
RoomVersionId::V4 => Self::VERSION4,
RoomVersionId::V5 => Self::VERSION5,
RoomVersionId::V6 => Self::VERSION6,
#[cfg(feature = "unstable-pre-spec")]
RoomVersionId::Version7 => Self::VERSION7,
RoomVersionId::V7 => Self::VERSION7,
#[cfg(feature = "unstable-pre-spec")]
RoomVersionId::Version8 => Self::VERSION8,
RoomVersionId::V8 => Self::VERSION8,
#[cfg(feature = "unstable-pre-spec")]
RoomVersionId::Version9 => Self::VERSION9,
RoomVersionId::V9 => Self::VERSION9,
ver => return Err(Error::Unsupported(format!("found version `{}`", ver.as_str()))),
})
}

View File

@ -116,10 +116,9 @@ pub fn do_check(
})
.collect();
let resolved =
crate::resolve(&RoomVersionId::Version6, state_sets, auth_chain_sets, |id| {
event_map.get(id).map(Arc::clone)
});
let resolved = crate::resolve(&RoomVersionId::V6, state_sets, auth_chain_sets, |id| {
event_map.get(id).map(Arc::clone)
});
match resolved {
Ok(state) => state,
Err(e) => panic!("resolution for {} failed: {}", node, e),