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

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

options: NotificationOptions<'a>

Send options

device_token: &'a str

The token for the receiving device

aps: APS<'a>

The pre-defined notification payload

data: BTreeMap<&'a str, Value>

Application specific payload

Methods

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

pub fn add_custom_data(
    &mut self,
    root_key: &'a str,
    data: &dyn Serialize
) -> Result<&mut Self, Error>
[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()
);

pub fn to_json_string(self) -> Result<String, Error>[src]

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

Trait Implementations

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

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

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

Auto Trait Implementations

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

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

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Erased for T