Struct web_push::WebPushMessageBuilder
source · pub struct WebPushMessageBuilder<'a> { /* private fields */ }Expand description
The main class for creating a notification payload.
Implementations§
source§impl<'a> WebPushMessageBuilder<'a>
impl<'a> WebPushMessageBuilder<'a>
sourcepub fn new(
subscription_info: &'a SubscriptionInfo
) -> Result<WebPushMessageBuilder<'a>, WebPushError>
pub fn new( subscription_info: &'a SubscriptionInfo ) -> Result<WebPushMessageBuilder<'a>, WebPushError>
Creates a builder for generating the web push payload.
All parameters are from the subscription info given by browser when subscribing to push notifications.
sourcepub fn set_ttl(&mut self, ttl: u32)
pub fn set_ttl(&mut self, ttl: u32)
How long the server should keep the message if it cannot be delivered currently. If not set, the message is deleted immediately on failed delivery.
sourcepub fn set_urgency(&mut self, urgency: Urgency)
pub fn set_urgency(&mut self, urgency: Urgency)
Urgency indicates to the push service how important a message is to the user. This can be used by the push service to help conserve the battery life of a user’s device by only waking up for important messages when battery is low. Possible values are ‘very-low’, ‘low’, ‘normal’ and ‘high’.
sourcepub fn set_vapid_signature(&mut self, vapid_signature: VapidSignature)
pub fn set_vapid_signature(&mut self, vapid_signature: VapidSignature)
Add a VAPID signature to the request. To be generated with the VapidSignatureBuilder.
sourcepub fn set_payload(&mut self, encoding: ContentEncoding, content: &'a [u8])
pub fn set_payload(&mut self, encoding: ContentEncoding, content: &'a [u8])
If set, the client will get content in the notification. Has a maximum size of 3800 characters.
Currently, Aes128Gcm is the recommended and only encoding standard implemented.
sourcepub fn build(self) -> Result<WebPushMessage, WebPushError>
pub fn build(self) -> Result<WebPushMessage, WebPushError>
Builds and if set, encrypts the payload. Any errors due to bad encryption will be
WebPushError::Unspecified, meaning
something was wrong in the given public key or authentication.
You can further debug these issues by checking the API responses visible with
log::trace level.