Add method to clear a Rich Presence status

This commit is contained in:
Patrick Auernig 2018-04-08 21:07:19 +02:00
parent 6bbc9f85d7
commit a9480b9d72
2 changed files with 17 additions and 2 deletions

View File

@ -48,6 +48,11 @@ impl Client {
self.execute(Command::SetActivity, SetActivityArgs::new(f), None)
}
#[cfg(feature = "rich_presence")]
pub fn clear_activity(&mut self) -> Result<Payload<Activity>> {
self.execute(Command::SetActivity, SetActivityArgs::default(), None)
}
pub fn subscribe<F>(&mut self, evt: Event, f: F) -> Result<Payload<Subscription>>
where F: FnOnce(SubscriptionArgs) -> SubscriptionArgs
{

View File

@ -1,5 +1,7 @@
#![cfg(feature = "rich_presence")]
use std::default::Default;
use super::shared::PartialUser;
use utils;
@ -7,14 +9,22 @@ use utils;
#[derive(Debug, PartialEq, Deserialize, Serialize)]
pub struct SetActivityArgs {
pid: i32,
activity: Activity,
#[serde(skip_serializing_if = "Option::is_none")]
activity: Option<Activity>,
}
impl SetActivityArgs {
pub fn new<F>(f: F) -> Self
where F: FnOnce(Activity) -> Activity
{
Self { pid: utils::pid(), activity: f(Activity::new()) }
Self { pid: utils::pid(), activity: Some(f(Activity::new())) }
}
}
impl Default for SetActivityArgs {
fn default() -> Self {
Self { pid: utils::pid(), activity: None }
}
}