diff options
| author | Zeyla Hellyer <[email protected]> | 2018-04-26 21:02:02 -0700 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2018-05-27 19:21:18 -0700 |
| commit | 309eee7ba66de7870011825a9130828e9b49e83c (patch) | |
| tree | 202559d698f927b0f8840804b7b5ccc83cb325f0 /src/model/guild | |
| parent | Remove user account relation docs/functions (diff) | |
| download | serenity-309eee7ba66de7870011825a9130828e9b49e83c.tar.xz serenity-309eee7ba66de7870011825a9130828e9b49e83c.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 c95c07f..ce3dd01 100644 --- a/src/model/guild/member.rs +++ b/src/model/guild/member.rs @@ -113,7 +113,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) { @@ -395,7 +396,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 53ec478..800d178 100644 --- a/src/model/guild/role.rs +++ b/src/model/guild/role.rs @@ -83,7 +83,11 @@ impl Role { /// # let role = RoleId(7).find().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 |