pub struct DiscordIPC { /* private fields */ }Expand description
Primary struct for you to set and update Discord Rich Presences with.
Implementations§
Source§impl DiscordIPC
impl DiscordIPC
Sourcepub async fn new(client_id: &str) -> Result<Self>
pub async fn new(client_id: &str) -> Result<Self>
Examples found in repository?
More examples
examples/timed.rs (line 9)
8async fn main() -> Result<()> {
9 let mut client = DiscordIPC::new("1463450870480900160").await.unwrap();
10
11 // first run
12 let handle = client.run().await.unwrap();
13
14 client.set_activity("this runs", "for ten seconds").await?;
15 sleep(Duration::from_secs(5)).await;
16 client.set_activity("believe it", "or not").await?;
17 sleep(Duration::from_secs(5)).await;
18
19 client.close().await?;
20 handle.await??; // wait for closing
21
22 // 2nd run
23 client.run().await?;
24
25 client.set_activity("this is the", "second run").await?;
26 sleep(Duration::from_secs(5)).await;
27 client
28 .set_activity("which also runs for", "ten seconds")
29 .await?;
30 sleep(Duration::from_secs(5)).await;
31
32 Ok(())
33}Sourcepub fn client_id(&self) -> String
pub fn client_id(&self) -> String
The Discord client ID that has been used to initialize this IPC client instance.
Sourcepub async fn run(&mut self) -> Result<JoinHandle<Result<()>>>
pub async fn run(&mut self) -> Result<JoinHandle<Result<()>>>
Run the client.
Returns a JoinHandle<anyhow::Result<()>> for management.
NOTE: Must be called before any .set_activity() calls.
Examples found in repository?
More examples
examples/timed.rs (line 12)
8async fn main() -> Result<()> {
9 let mut client = DiscordIPC::new("1463450870480900160").await.unwrap();
10
11 // first run
12 let handle = client.run().await.unwrap();
13
14 client.set_activity("this runs", "for ten seconds").await?;
15 sleep(Duration::from_secs(5)).await;
16 client.set_activity("believe it", "or not").await?;
17 sleep(Duration::from_secs(5)).await;
18
19 client.close().await?;
20 handle.await??; // wait for closing
21
22 // 2nd run
23 client.run().await?;
24
25 client.set_activity("this is the", "second run").await?;
26 sleep(Duration::from_secs(5)).await;
27 client
28 .set_activity("which also runs for", "ten seconds")
29 .await?;
30 sleep(Duration::from_secs(5)).await;
31
32 Ok(())
33}Sourcepub async fn set_activity(&self, details: &str, state: &str) -> Result<()>
pub async fn set_activity(&self, details: &str, state: &str) -> Result<()>
Sets/updates the Discord Rich presence activity. NOTE: .run() must be executed prior to calling this.
Examples found in repository?
More examples
examples/timed.rs (line 14)
8async fn main() -> Result<()> {
9 let mut client = DiscordIPC::new("1463450870480900160").await.unwrap();
10
11 // first run
12 let handle = client.run().await.unwrap();
13
14 client.set_activity("this runs", "for ten seconds").await?;
15 sleep(Duration::from_secs(5)).await;
16 client.set_activity("believe it", "or not").await?;
17 sleep(Duration::from_secs(5)).await;
18
19 client.close().await?;
20 handle.await??; // wait for closing
21
22 // 2nd run
23 client.run().await?;
24
25 client.set_activity("this is the", "second run").await?;
26 sleep(Duration::from_secs(5)).await;
27 client
28 .set_activity("which also runs for", "ten seconds")
29 .await?;
30 sleep(Duration::from_secs(5)).await;
31
32 Ok(())
33}Sourcepub async fn close(&self) -> Result<()>
pub async fn close(&self) -> Result<()>
Closes the current session of Rich Presence activity.
Examples found in repository?
examples/timed.rs (line 19)
8async fn main() -> Result<()> {
9 let mut client = DiscordIPC::new("1463450870480900160").await.unwrap();
10
11 // first run
12 let handle = client.run().await.unwrap();
13
14 client.set_activity("this runs", "for ten seconds").await?;
15 sleep(Duration::from_secs(5)).await;
16 client.set_activity("believe it", "or not").await?;
17 sleep(Duration::from_secs(5)).await;
18
19 client.close().await?;
20 handle.await??; // wait for closing
21
22 // 2nd run
23 client.run().await?;
24
25 client.set_activity("this is the", "second run").await?;
26 sleep(Duration::from_secs(5)).await;
27 client
28 .set_activity("which also runs for", "ten seconds")
29 .await?;
30 sleep(Duration::from_secs(5)).await;
31
32 Ok(())
33}Trait Implementations§
Source§impl Clone for DiscordIPC
impl Clone for DiscordIPC
Source§fn clone(&self) -> DiscordIPC
fn clone(&self) -> DiscordIPC
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for DiscordIPC
impl RefUnwindSafe for DiscordIPC
impl Send for DiscordIPC
impl Sync for DiscordIPC
impl Unpin for DiscordIPC
impl UnsafeUnpin for DiscordIPC
impl UnwindSafe for DiscordIPC
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more