aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorZeyla Hellyer <[email protected]>2017-11-01 20:47:08 -0700
committerZeyla Hellyer <[email protected]>2017-11-03 07:13:38 -0700
commitb19b031a5052a268f323a116403ea66ca71ea575 (patch)
tree0ca71c6736214c40768b409b3a2222f2a3c387ec /src/client
parentMake `Command::aliases` public (diff)
downloadserenity-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.rs42
-rw-r--r--src/client/mod.rs32
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);