@@ -7,20 +7,25 @@ pub use bufferfish_derive::{Decode, Encode};
77#[ cfg( feature = "derive" ) ]
88pub use compiler:: generate;
99
10- /// Helper macro for defining packets with reduced boilerplate.
10+ /// Helper macro for defining messages with reduced boilerplate.
1111///
1212/// # Examples
1313///
1414/// ```rust
15- /// # use bufferfish::packet ;
15+ /// # use bufferfish::msg ;
1616/// # enum ClientEventId { HeartbeatAck, ChatMessage }
17- /// // Empty packet
18- /// packet!(HeartbeatAckPacket , ClientEventId::HeartbeatAck);
17+ /// // Empty message
18+ /// msg!(HeartbeatAckMessage , ClientEventId::HeartbeatAck);
1919///
20- /// // Packet with fields
21- /// packet!(SendChatMessagePacket , ClientEventId::ChatMessage, {
20+ /// // Message with fields
21+ /// msg!(SendChatMessage , ClientEventId::ChatMessage, {
2222/// pub content: String,
2323/// });
24+ ///
25+ /// // Message with skip attribute for client-side generation
26+ /// msg!(ServerOnlyMessage, ClientEventId::ServerData, skip = "client", {
27+ /// pub secret: String,
28+ /// });
2429/// ```
2530#[ cfg( feature = "derive" ) ]
2631#[ macro_export]
@@ -32,6 +37,13 @@ macro_rules! msg {
3237 pub struct $name;
3338 } ;
3439
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+
3547 // Message with fields
3648 ( $name: ident, $id: expr, { $( $field: vis $field_name: ident: $field_type: ty) ,* $( , ) ? } ) => {
3749 #[ derive( Debug , Encode ) ]
@@ -40,6 +52,15 @@ macro_rules! msg {
4052 $( $field $field_name: $field_type, ) *
4153 }
4254 } ;
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+ } ;
4364}
4465
4566#[ cfg( feature = "derive" ) ]
0 commit comments