diff options
| author | Zeyla Hellyer <[email protected]> | 2017-10-10 20:08:11 -0700 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2017-10-10 20:08:11 -0700 |
| commit | 93e0a4215c915b98cf433ac6d0bcfbc60f0168ec (patch) | |
| tree | 727111506d1f89cd8a511b8b79c102131222421f /src/model/channel/mod.rs | |
| parent | Resume on resumable session invalidations (diff) | |
| download | serenity-93e0a4215c915b98cf433ac6d0bcfbc60f0168ec.tar.xz serenity-93e0a4215c915b98cf433ac6d0bcfbc60f0168ec.zip | |
Switch to parking_lot::{Mutex, RwLock}
Switch to the `parking_lot` crate's implementations of
`std::sync::Mutex` and `std::sync::RwLock`, which are more efficient.
A writeup on why `parking_lot` is more efficient can be read here:
<https://github.com/Amanieu/parking_lot>
Upgrade path:
Modify `mutex.lock().unwrap()` usage to `mutex.lock()` (not needing to
unwrap or handle a result), and
`rwlock.read().unwrap()`/`rwlock.write().unwrap()` usage to
`rwlock.read()` and `rwlock.write()`.
For example, modify:
```rust
use serenity::CACHE;
println!("{}", CACHE.read().unwrap().user.id);
```
to:
```rust
use serenity::CACHE;
println!("{}", CACHE.read().user.id);
```
Diffstat (limited to 'src/model/channel/mod.rs')
| -rw-r--r-- | src/model/channel/mod.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/model/channel/mod.rs b/src/model/channel/mod.rs index 4ba0322..f7ecc0f 100644 --- a/src/model/channel/mod.rs +++ b/src/model/channel/mod.rs @@ -83,16 +83,16 @@ impl Channel { pub fn delete(&self) -> Result<()> { match *self { Channel::Group(ref group) => { - let _ = group.read().unwrap().leave()?; + let _ = group.read().leave()?; }, Channel::Guild(ref public_channel) => { - let _ = public_channel.read().unwrap().delete()?; + let _ = public_channel.read().delete()?; }, Channel::Private(ref private_channel) => { - let _ = private_channel.read().unwrap().delete()?; + let _ = private_channel.read().delete()?; }, Channel::Category(ref category) => { - category.read().unwrap().delete()?; + category.read().delete()?; }, } @@ -375,15 +375,15 @@ impl Display for Channel { /// [`PrivateChannel`]: struct.PrivateChannel.html fn fmt(&self, f: &mut Formatter) -> FmtResult { match *self { - Channel::Group(ref group) => Display::fmt(&group.read().unwrap().name(), f), - Channel::Guild(ref ch) => Display::fmt(&ch.read().unwrap().id.mention(), f), + Channel::Group(ref group) => Display::fmt(&group.read().name(), f), + Channel::Guild(ref ch) => Display::fmt(&ch.read().id.mention(), f), Channel::Private(ref ch) => { - let channel = ch.read().unwrap(); - let recipient = channel.recipient.read().unwrap(); + let channel = ch.read(); + let recipient = channel.recipient.read(); Display::fmt(&recipient.name, f) }, - Channel::Category(ref category) => Display::fmt(&category.read().unwrap().name, f), + Channel::Category(ref category) => Display::fmt(&category.read().name, f), } } } |