Macro welcome

Source
macro_rules! welcome {
    ($session:expr) => { ... };
    ($session:expr, $details:expr) => { ... };
}
Expand description

§welcome Macro - wamp-proto

Macro that allows for default empty implementation of details object on Cabcel.

§Examples

use wamp_core::messages::{self, Welcome};
use wamp_core::welcome;
use serde_json::{json, Value};

// Construct with default empty details object
let session = 1;
let mut welcome_message = welcome!(session);
assert_eq!(welcome_message.details, Value::Null);

// Construct with custom details
let welcome_message2 = welcome!(1, json!({
    "key": "value"
}));

assert_ne!(welcome_message, welcome_message2);
welcome_message.details = json!({ "key": "value" });
assert_eq!(welcome_message, welcome_message2);

// These macro invocations are the same as the following:
let welcome_message3 = Welcome {
    session: 1,
    details: json!({
        "key": "value"
    })
};

assert_eq!(welcome_message, welcome_message3);
assert_eq!(welcome_message2, welcome_message3);