@@ -7,62 +7,6 @@ pub use bufferfish_derive::{Decode, Encode};
77#[ cfg( feature = "derive" ) ]
88pub use compiler:: generate;
99
10- /// Helper macro for defining messages with reduced boilerplate.
11- ///
12- /// # Examples
13- ///
14- /// ```rust
15- /// # use bufferfish::msg;
16- /// # enum ClientEventId { HeartbeatAck, ChatMessage }
17- /// // Empty message
18- /// msg!(HeartbeatAckMessage, ClientEventId::HeartbeatAck);
19- ///
20- /// // Message with fields
21- /// msg!(SendChatMessage, ClientEventId::ChatMessage, {
22- /// pub content: String,
23- /// });
24- ///
25- /// // Message with skip attribute for client-side generation
26- /// msg!(ServerOnlyMessage, ClientEventId::ServerData, skip = "client", {
27- /// pub secret: String,
28- /// });
29- /// ```
30- #[ cfg( feature = "derive" ) ]
31- #[ macro_export]
32- macro_rules! msg {
33- // Empty message
34- ( $name: ident, $id: expr) => {
35- #[ derive( Debug , Encode ) ]
36- #[ bufferfish( $id) ]
37- pub struct $name;
38- } ;
39-
40- // Empty message with skip attribute
41- ( $name: ident, $id: expr, skip = $target: expr) => {
42- #[ derive( Debug , Encode ) ]
43- #[ bufferfish( $id, skip = $target) ]
44- pub struct $name;
45- } ;
46-
47- // Message with fields
48- ( $name: ident, $id: expr, { $( $field: vis $field_name: ident: $field_type: ty) ,* $( , ) ? } ) => {
49- #[ derive( Debug , Encode ) ]
50- #[ bufferfish( $id) ]
51- pub struct $name {
52- $( $field $field_name: $field_type, ) *
53- }
54- } ;
55-
56- // Message with fields and skip attribute
57- ( $name: ident, $id: expr, skip = $target: expr, { $( $field: vis $field_name: ident: $field_type: ty) ,* $( , ) ? } ) => {
58- #[ derive( Debug , Encode ) ]
59- #[ bufferfish( $id, skip = $target) ]
60- pub struct $name {
61- $( $field $field_name: $field_type, ) *
62- }
63- } ;
64- }
65-
6610#[ cfg( feature = "derive" ) ]
6711#[ cfg( test) ]
6812mod tests {
0 commit comments