diff options
| author | Zeyla Hellyer <[email protected]> | 2017-11-01 20:47:08 -0700 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2017-11-03 07:13:38 -0700 |
| commit | b19b031a5052a268f323a116403ea66ca71ea575 (patch) | |
| tree | 0ca71c6736214c40768b409b3a2222f2a3c387ec /src/client | |
| parent | Make `Command::aliases` public (diff) | |
| download | serenity-b19b031a5052a268f323a116403ea66ca71ea575.tar.xz serenity-b19b031a5052a268f323a116403ea66ca71ea575.zip | |
Make the Client return a Result
The client now returns a Result in preparation of a future commit.
Upgrade path:
Handle the case of an error via pattern matching, or unwrap the Result.
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/context.rs | 42 | ||||
| -rw-r--r-- | src/client/mod.rs | 32 |
2 files changed, 50 insertions, 24 deletions
diff --git a/src/client/context.rs b/src/client/context.rs index 261c8ff..a60aaa0 100644 --- a/src/client/context.rs +++ b/src/client/context.rs @@ -77,7 +77,9 @@ impl Context { /// } /// } /// } - /// let mut client = Client::new("token", Handler); client.start().unwrap(); + /// let mut client = Client::new("token", Handler).unwrap(); + /// + /// client.start().unwrap(); /// ``` #[cfg(feature = "builder")] pub fn edit_profile<F: FnOnce(EditProfile) -> EditProfile>(&self, f: F) -> Result<CurrentUser> { @@ -128,7 +130,10 @@ impl Context { /// } /// } /// } - /// let mut client = Client::new("token", Handler); client.start().unwrap(); + /// + /// let mut client = Client::new("token", Handler).unwrap(); + /// + /// client.start().unwrap(); /// ``` /// /// [`Online`]: ../model/enum.OnlineStatus.html#variant.Online @@ -157,7 +162,9 @@ impl Context { /// } /// } /// } - /// let mut client = Client::new("token", Handler); client.start().unwrap(); + /// let mut client = Client::new("token", Handler).unwrap(); + /// + /// client.start().unwrap(); /// ``` /// /// [`Idle`]: ../model/enum.OnlineStatus.html#variant.Idle @@ -186,7 +193,9 @@ impl Context { /// } /// } /// } - /// let mut client = Client::new("token", Handler); client.start().unwrap(); + /// let mut client = Client::new("token", Handler).unwrap(); + /// + /// client.start().unwrap(); /// ``` /// /// [`DoNotDisturb`]: ../model/enum.OnlineStatus.html#variant.DoNotDisturb @@ -215,7 +224,9 @@ impl Context { /// } /// } /// - /// let mut client = Client::new("token", Handler); client.start().unwrap(); + /// let mut client = Client::new("token", Handler).unwrap(); + /// + /// client.start().unwrap(); /// ``` /// /// [`Event::Ready`]: ../model/event/enum.Event.html#variant.Ready @@ -246,7 +257,9 @@ impl Context { /// } /// } /// - /// let mut client = Client::new("token", Handler); client.start().unwrap(); + /// let mut client = Client::new("token", Handler).unwrap(); + /// + /// client.start().unwrap(); /// ``` /// /// [`Event::Resumed`]: ../model/event/enum.Event.html#variant.Resumed @@ -271,6 +284,7 @@ impl Context { /// use serenity::model::Game; /// /// struct Handler; + /// /// impl EventHandler for Handler { /// fn message(&self, ctx: Context, msg: Message) { /// let args = msg.content.splitn(2, ' ').collect::<Vec<&str>>(); @@ -283,7 +297,9 @@ impl Context { /// } /// } /// - /// let mut client = Client::new("token", Handler); client.start().unwrap(); + /// let mut client = Client::new("token", Handler).unwrap(); + /// + /// client.start().unwrap(); /// ``` /// /// [`Online`]: ../model/enum.OnlineStatus.html#variant.Online @@ -317,7 +333,8 @@ impl Context { /// } /// } /// - /// let mut client = Client::new("token", Handler); client.start().unwrap(); + /// let mut client = Client::new("token", Handler).unwrap(); + /// client.start().unwrap(); /// ``` /// /// [`Event::Ready`]: ../model/event/enum.Event.html#variant.Ready @@ -357,7 +374,9 @@ impl Context { /// ctx.set_presence(None, OnlineStatus::Idle); /// } /// } - /// let mut client = Client::new("token", Handler); client.start().unwrap(); + /// let mut client = Client::new("token", Handler).unwrap(); + /// + /// client.start().unwrap(); /// ``` /// /// Setting the current user as playing `"Heroes of the Storm"`, while being @@ -379,7 +398,10 @@ impl Context { /// context.set_presence(Some(game), status); /// } /// } - /// let mut client = Client::new("token", Handler); client.start().unwrap(); + /// + /// let mut client = Client::new("token", Handler).unwrap(); + /// + /// client.start().unwrap(); /// ``` /// /// [`DoNotDisturb`]: ../model/enum.OnlineStatus.html#variant.DoNotDisturb diff --git a/src/client/mod.rs b/src/client/mod.rs index 6f6b5ba..00a305a 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -222,7 +222,7 @@ pub struct Client<H: EventHandler + Send + Sync + 'static> { /// /// impl EventHandler for Handler { } /// - /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler); + /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler)?; /// /// let shard_runners = client.shard_runners.clone(); /// @@ -275,7 +275,7 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { /// use std::env; /// /// let token = env::var("DISCORD_TOKEN")?; - /// let client = Client::new(&token, Handler); + /// let client = Client::new(&token, Handler)?; /// # Ok(()) /// # } /// # @@ -283,7 +283,7 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { /// # try_main().unwrap(); /// # } /// ``` - pub fn new(token: &str, handler: H) -> Self { + pub fn new(token: &str, handler: H) -> Result<Self> { let token = if token.starts_with("Bot ") { token.to_string() } else { @@ -296,7 +296,7 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { let name = "serenity client".to_owned(); let threadpool = ThreadPool::with_name(name, 5); - feature_framework! {{ + Ok(feature_framework! {{ Client { data: Arc::new(Mutex::new(ShareMap::custom())), event_handler: Arc::new(handler), @@ -313,7 +313,7 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { threadpool, token: locked, } - }} + }}) } /// Sets a framework to be used with the client. All message events will be @@ -340,7 +340,7 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { /// use serenity::Client; /// use std::env; /// - /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler); + /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler)?; /// client.with_framework(StandardFramework::new() /// .configure(|c| c.prefix("~")) /// .command("ping", |c| c.exec_str("Pong!"))); @@ -392,12 +392,11 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { /// /// impl EventHandler for Handler {} /// - /// /// # fn try_main() -> Result<(), Box<Error>> { /// use serenity::Client; /// use std::env; /// - /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler); + /// let mut client = Client::new(&token, Handler).unwrap(); /// client.with_framework(MyFramework { commands: { /// let mut map = HashMap::new(); /// map.insert("ping".to_string(), Box::new(|msg, _| msg.channel_id.say("pong!"))); @@ -447,7 +446,8 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { /// use serenity::client::Client; /// use std::env; /// - /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler); + /// let token = env::var("DISCORD_TOKEN")?; + /// let mut client = Client::new(&token, Handler).unwrap(); /// /// if let Err(why) = client.start() { /// println!("Err with client: {:?}", why); @@ -492,7 +492,8 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { /// use serenity::client::Client; /// use std::env; /// - /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler); + /// let token = env::var("DISCORD_TOKEN")?; + /// let mut client = Client::new(&token, Handler).unwrap(); /// /// if let Err(why) = client.start_autosharded() { /// println!("Err with client: {:?}", why); @@ -551,7 +552,8 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { /// use serenity::client::Client; /// use std::env; /// - /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler); + /// let token = env::var("DISCORD_TOKEN")?; + /// let mut client = Client::new(&token, Handler).unwrap(); /// /// if let Err(why) = client.start_shard(3, 5) { /// println!("Err with client: {:?}", why); @@ -578,7 +580,7 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { /// use serenity::client::Client; /// use std::env; /// - /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler); + /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler)?; /// /// if let Err(why) = client.start_shard(0, 1) { /// println!("Err with client: {:?}", why); @@ -631,7 +633,8 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { /// use serenity::client::Client; /// use std::env; /// - /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler); + /// let token = env::var("DISCORD_TOKEN")?; + /// let mut client = Client::new(&token, Handler).unwrap(); /// /// if let Err(why) = client.start_shards(8) { /// println!("Err with client: {:?}", why); @@ -702,7 +705,8 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> { /// use serenity::client::Client; /// use std::env; /// - /// let mut client = Client::new(&env::var("DISCORD_TOKEN")?, Handler); + /// let token = env::var("DISCORD_TOKEN")?; + /// let mut client = Client::new(&token, Handler).unwrap(); /// /// if let Err(why) = client.start_shard_range([4, 7], 10) { /// println!("Err with client: {:?}", why); |