[][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]

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

Auto Trait Implementations

impl<'a> RefUnwindSafe for Payload<'a>

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

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

impl<'a> Unpin for Payload<'a>

impl<'a> UnwindSafe for Payload<'a>

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

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

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

type Owned = T

The resulting type after obtaining ownership.

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.