Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate bytes; // 0.4.12
- use bytes::BufMut;
- #[derive(Debug)]
- struct Message {
- id: u32,
- body: Body,
- }
- #[derive(Debug)]
- enum Body {
- SendMessage { inner: SendMessage },
- ReceiveMessage { inner: ReceiveMessage },
- }
- #[derive(Debug)]
- struct ReceiveMessage {
- from: String,
- message: String
- }
- #[derive(Debug)]
- struct SendMessage {
- to: String,
- message: String
- }
- fn main() {
- let m = Message {
- id: 1,
- body: Body::SendMessage { inner: SendMessage {
- to: "#rust".to_string(),
- message: "help".to_string(),
- }},
- };
- println!("{:#?}", m);
- // This seems super awkward, is there a way of not listing each attribute?
- match m.body {
- Body::SendMessage{inner} => println!("{} please {}", inner.to, inner.message),
- _ => ()
- };
- // Is there some way I can get this behaviour? I don't really want to
- // implement IntoBuf for every variant if I can help it?
- let b = bytes::BytesMut::new();
- //b.put(m);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement