diff options
| author | Zeyla Hellyer <[email protected]> | 2018-04-26 21:02:02 -0700 |
|---|---|---|
| committer | Ken Swenson <[email protected]> | 2018-11-06 20:30:49 -0500 |
| commit | 0de0a81be06268f8ec57c8d825cbc70355fe869a (patch) | |
| tree | 9cfeaf04035c5623c720a6252be9470a03ccbd8f /src/model/guild | |
| parent | Permit sending files through the `CreateMessage` builder. (diff) | |
| download | serenity-0de0a81be06268f8ec57c8d825cbc70355fe869a.tar.xz serenity-0de0a81be06268f8ec57c8d825cbc70355fe869a.zip | |
Make builders mutably borrowed
Change the builders so that they are now mutably borrowed, accepting
`&mut self` instead of `self`. Their methods now return `()` instead of
`Self`.
Upgrade path:
Change code such as the following:
```rust
channel.send_message(|m| m
.embed(|e| e
.description("test")
.title("title")));
```
to the following style:
```rust
channel.send_message(|mut m| {
m.embed(|mut e| {
e.description("test");
e.title("title");
e
});
m
});
```
Closes #159.
Diffstat (limited to 'src/model/guild')
| -rw-r--r-- | src/model/guild/member.rs | 6 | ||||
| -rw-r--r-- | src/model/guild/role.rs | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/model/guild/member.rs b/src/model/guild/member.rs index 34f2af1..dae2b41 100644 --- a/src/model/guild/member.rs +++ b/src/model/guild/member.rs @@ -117,7 +117,8 @@ impl Member { pub fn add_roles(&mut self, role_ids: &[RoleId]) -> Result<()> { self.roles.extend_from_slice(role_ids); - let builder = EditMember::default().roles(&self.roles); + let mut builder = EditMember::default(); + builder.roles(&self.roles); let map = utils::vecmap_to_json_map(builder.0); match http::edit_member(self.guild_id.0, self.user.read().id.0, &map) { @@ -405,7 +406,8 @@ impl Member { pub fn remove_roles(&mut self, role_ids: &[RoleId]) -> Result<()> { self.roles.retain(|r| !role_ids.contains(r)); - let builder = EditMember::default().roles(&self.roles); + let mut builder = EditMember::default(); + builder.roles(&self.roles); let map = utils::vecmap_to_json_map(builder.0); match http::edit_member(self.guild_id.0, self.user.read().id.0, &map) { diff --git a/src/model/guild/role.rs b/src/model/guild/role.rs index 53239a8..39f6339 100644 --- a/src/model/guild/role.rs +++ b/src/model/guild/role.rs @@ -90,7 +90,11 @@ impl Role { /// # let role = RoleId(7).to_role_cached().unwrap(); /// // assuming a `role` has already been bound // - /// role.edit(|r| r.hoist(true)); + /// role.edit(|mut r| { + /// r.hoist(true); + /// + /// r + /// }); /// ``` /// /// [`Role`]: struct.Role.html |