diff --git a/ruma-events-macros/src/event_enum.rs b/ruma-events-macros/src/event_enum.rs index 4eb8a42a..1d011ff7 100644 --- a/ruma-events-macros/src/event_enum.rs +++ b/ruma-events-macros/src/event_enum.rs @@ -192,11 +192,18 @@ fn to_event_content_path(name: &LitStr) -> TokenStream { pub(crate) fn to_camel_case(name: &LitStr) -> Ident { let span = name.span(); let name = name.value(); - assert_eq!(&name[..2], "m."); + + assert_eq!( + &name[..2], + "m.", + "well-known matrix events have to start with `m.`" + ); + let s = name[2..] .split(&['.', '_'] as &[char]) .map(|s| s.chars().next().unwrap().to_uppercase().to_string() + &s[1..]) .collect::(); + Ident::new(&s, span) } diff --git a/tests/ui/08-enum-invalid-path.stderr b/tests/ui/08-enum-invalid-path.stderr index d5657493..0448f49a 100644 --- a/tests/ui/08-enum-invalid-path.stderr +++ b/tests/ui/08-enum-invalid-path.stderr @@ -11,7 +11,7 @@ error: proc macro panicked | = help: message: assertion failed: `(left == right)` left: `"no"`, - right: `"m."` + right: `"m."`: well-known matrix events have to start with `m.` error[E0433]: failed to resolve: could not find `not` in `ruma_events` --> $DIR/08-enum-invalid-path.rs:6:9