Struct a2::request::payload::Payload[][src]

pub struct Payload<'a> {
    pub options: NotificationOptions<'a>,
    pub device_token: &'a str,
    pub aps: APS<'a>,
    pub data: BTreeMap<&'a str, Value>,
}

The data and options for a push notification.

Fields

Send options

The token for the receiving device

The pre-defined notification payload

Application specific payload

Methods

impl<'a> Payload<'a>
[src]

Client-specific custom data to be added in the payload. The root_key defines the JSON key in the root of the request data, and data the object containing custom data. The data should implement Serialize, which allows using of any Rust collection or if needing more strict type definitions, any struct that has #[derive(Serialize)] from Serde.

Using a HashMap:

let mut payload = SilentNotificationBuilder::new()
    .build("token", Default::default());
let mut custom_data = HashMap::new();

custom_data.insert("foo", "bar");
payload.add_custom_data("foo_data", &custom_data).unwrap();

assert_eq!(
    "{\"aps\":{\"content-available\":1},\"foo_data\":{\"foo\":\"bar\"}}",
    &payload.to_json_string().unwrap()
);

Using a custom struct:

#[derive(Serialize)]
struct CompanyData {
    foo: &'static str,
}

let mut payload = SilentNotificationBuilder::new().build("token", Default::default());
let mut custom_data = CompanyData { foo: "bar" };

payload.add_custom_data("foo_data", &custom_data).unwrap();

assert_eq!(
    "{\"aps\":{\"content-available\":1},\"foo_data\":{\"foo\":\"bar\"}}",
    &payload.to_json_string().unwrap()
);

Combine the APS payload and the custom data to a final payload JSON. Returns an error if serialization fails.

Trait Implementations

impl<'a> Debug for Payload<'a>
[src]

Formats the value using the given formatter. Read more

impl<'a> Clone for Payload<'a>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl<'a> Send for Payload<'a>

impl<'a> Sync for Payload<'a>