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 fn new(client_id: &str) -> Self
pub fn new(client_id: &str) -> Self
Creates a new Discord IPC client instance.
Examples found in repository?
examples/indefinite.rs (line 6)
5async fn main() -> Result<()> {
6 let mut client = DiscordIPC::new("1463450870480900160")
7 .on_ready(|| println!("filthy-rich is READY to set activities."));
8
9 client.run(true).await?;
10
11 client
12 .set_activity("this runs forever".to_string(), None)
13 .await?;
14 client.wait().await?;
15
16 Ok(())
17}More examples
examples/timed.rs (line 9)
8async fn main() -> Result<()> {
9 let mut client = DiscordIPC::new("1463450870480900160")
10 .on_ready(|| println!("filthy-rich is READY to set activities."));
11
12 // first run
13 client.run(true).await?;
14
15 client
16 .set_activity("this runs".to_string(), Some("for ten seconds".to_string()))
17 .await?;
18 sleep(Duration::from_secs(5)).await;
19 client
20 .set_activity("believe it".to_string(), Some("or not!".to_string()))
21 .await?;
22 sleep(Duration::from_secs(5)).await;
23
24 client.close().await?;
25 sleep(Duration::from_secs(5)).await;
26
27 client.run(true).await?;
28
29 client
30 .set_activity("this runs".to_string(), Some("for ten seconds".to_string()))
31 .await?;
32 sleep(Duration::from_secs(5)).await;
33 client
34 .set_activity("believe it".to_string(), Some("or not!".to_string()))
35 .await?;
36 sleep(Duration::from_secs(5)).await;
37
38 Ok(())
39}Sourcepub fn on_ready<F: Fn() + Send + 'static>(self, f: F) -> Self
pub fn on_ready<F: Fn() + Send + 'static>(self, f: F) -> Self
Run a particular closure after receiving the READY event from the local Discord IPC server.
Examples found in repository?
examples/indefinite.rs (line 7)
5async fn main() -> Result<()> {
6 let mut client = DiscordIPC::new("1463450870480900160")
7 .on_ready(|| println!("filthy-rich is READY to set activities."));
8
9 client.run(true).await?;
10
11 client
12 .set_activity("this runs forever".to_string(), None)
13 .await?;
14 client.wait().await?;
15
16 Ok(())
17}More examples
examples/timed.rs (line 10)
8async fn main() -> Result<()> {
9 let mut client = DiscordIPC::new("1463450870480900160")
10 .on_ready(|| println!("filthy-rich is READY to set activities."));
11
12 // first run
13 client.run(true).await?;
14
15 client
16 .set_activity("this runs".to_string(), Some("for ten seconds".to_string()))
17 .await?;
18 sleep(Duration::from_secs(5)).await;
19 client
20 .set_activity("believe it".to_string(), Some("or not!".to_string()))
21 .await?;
22 sleep(Duration::from_secs(5)).await;
23
24 client.close().await?;
25 sleep(Duration::from_secs(5)).await;
26
27 client.run(true).await?;
28
29 client
30 .set_activity("this runs".to_string(), Some("for ten seconds".to_string()))
31 .await?;
32 sleep(Duration::from_secs(5)).await;
33 client
34 .set_activity("believe it".to_string(), Some("or not!".to_string()))
35 .await?;
36 sleep(Duration::from_secs(5)).await;
37
38 Ok(())
39}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, wait_for_ready: bool) -> Result<()>
pub async fn run(&mut self, wait_for_ready: bool) -> Result<()>
Run the client.
Must be called before any DiscordIPC::set_activity calls.
Examples found in repository?
examples/indefinite.rs (line 9)
5async fn main() -> Result<()> {
6 let mut client = DiscordIPC::new("1463450870480900160")
7 .on_ready(|| println!("filthy-rich is READY to set activities."));
8
9 client.run(true).await?;
10
11 client
12 .set_activity("this runs forever".to_string(), None)
13 .await?;
14 client.wait().await?;
15
16 Ok(())
17}More examples
examples/timed.rs (line 13)
8async fn main() -> Result<()> {
9 let mut client = DiscordIPC::new("1463450870480900160")
10 .on_ready(|| println!("filthy-rich is READY to set activities."));
11
12 // first run
13 client.run(true).await?;
14
15 client
16 .set_activity("this runs".to_string(), Some("for ten seconds".to_string()))
17 .await?;
18 sleep(Duration::from_secs(5)).await;
19 client
20 .set_activity("believe it".to_string(), Some("or not!".to_string()))
21 .await?;
22 sleep(Duration::from_secs(5)).await;
23
24 client.close().await?;
25 sleep(Duration::from_secs(5)).await;
26
27 client.run(true).await?;
28
29 client
30 .set_activity("this runs".to_string(), Some("for ten seconds".to_string()))
31 .await?;
32 sleep(Duration::from_secs(5)).await;
33 client
34 .set_activity("believe it".to_string(), Some("or not!".to_string()))
35 .await?;
36 sleep(Duration::from_secs(5)).await;
37
38 Ok(())
39}Sourcepub async fn wait(&mut self) -> Result<()>
pub async fn wait(&mut self) -> Result<()>
Waits for the IPC task to finish.
Examples found in repository?
examples/indefinite.rs (line 14)
5async fn main() -> Result<()> {
6 let mut client = DiscordIPC::new("1463450870480900160")
7 .on_ready(|| println!("filthy-rich is READY to set activities."));
8
9 client.run(true).await?;
10
11 client
12 .set_activity("this runs forever".to_string(), None)
13 .await?;
14 client.wait().await?;
15
16 Ok(())
17}Sourcepub fn is_running(&self) -> bool
pub fn is_running(&self) -> bool
Checks whether the task is running through the internal atomic indicator flag.
Sourcepub async fn set_activity(
&self,
details: String,
state: Option<String>,
) -> Result<()>
pub async fn set_activity( &self, details: String, state: Option<String>, ) -> Result<()>
Sets/updates the Discord Rich presence activity.
DiscordIPC::run must be executed prior to calling this.
Examples found in repository?
examples/indefinite.rs (line 12)
5async fn main() -> Result<()> {
6 let mut client = DiscordIPC::new("1463450870480900160")
7 .on_ready(|| println!("filthy-rich is READY to set activities."));
8
9 client.run(true).await?;
10
11 client
12 .set_activity("this runs forever".to_string(), None)
13 .await?;
14 client.wait().await?;
15
16 Ok(())
17}More examples
examples/timed.rs (line 16)
8async fn main() -> Result<()> {
9 let mut client = DiscordIPC::new("1463450870480900160")
10 .on_ready(|| println!("filthy-rich is READY to set activities."));
11
12 // first run
13 client.run(true).await?;
14
15 client
16 .set_activity("this runs".to_string(), Some("for ten seconds".to_string()))
17 .await?;
18 sleep(Duration::from_secs(5)).await;
19 client
20 .set_activity("believe it".to_string(), Some("or not!".to_string()))
21 .await?;
22 sleep(Duration::from_secs(5)).await;
23
24 client.close().await?;
25 sleep(Duration::from_secs(5)).await;
26
27 client.run(true).await?;
28
29 client
30 .set_activity("this runs".to_string(), Some("for ten seconds".to_string()))
31 .await?;
32 sleep(Duration::from_secs(5)).await;
33 client
34 .set_activity("believe it".to_string(), Some("or not!".to_string()))
35 .await?;
36 sleep(Duration::from_secs(5)).await;
37
38 Ok(())
39}Sourcepub async fn clear_activity(&self) -> Result<()>
pub async fn clear_activity(&self) -> Result<()>
Clears a previously set Discord Rich Presence activity.
Sourcepub async fn close(&mut self) -> Result<()>
pub async fn close(&mut self) -> Result<()>
Closes the current connection if any.
Examples found in repository?
examples/timed.rs (line 24)
8async fn main() -> Result<()> {
9 let mut client = DiscordIPC::new("1463450870480900160")
10 .on_ready(|| println!("filthy-rich is READY to set activities."));
11
12 // first run
13 client.run(true).await?;
14
15 client
16 .set_activity("this runs".to_string(), Some("for ten seconds".to_string()))
17 .await?;
18 sleep(Duration::from_secs(5)).await;
19 client
20 .set_activity("believe it".to_string(), Some("or not!".to_string()))
21 .await?;
22 sleep(Duration::from_secs(5)).await;
23
24 client.close().await?;
25 sleep(Duration::from_secs(5)).await;
26
27 client.run(true).await?;
28
29 client
30 .set_activity("this runs".to_string(), Some("for ten seconds".to_string()))
31 .await?;
32 sleep(Duration::from_secs(5)).await;
33 client
34 .set_activity("believe it".to_string(), Some("or not!".to_string()))
35 .await?;
36 sleep(Duration::from_secs(5)).await;
37
38 Ok(())
39}Auto 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