twilight_model/guild/
role_position.rs

1use crate::id::{marker::RoleMarker, Id};
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
5/// Data used to update the positions of roles.
6pub struct RolePosition {
7    /// Role identifier.
8    pub id: Id<RoleMarker>,
9    /// Sorting position of the role.
10    pub position: u64,
11}
12
13#[cfg(test)]
14mod tests {
15    use super::{Id, RolePosition};
16    use serde_test::Token;
17
18    #[test]
19    fn role_position() {
20        let role_position = RolePosition {
21            id: Id::new(123),
22            position: 12,
23        };
24
25        serde_test::assert_tokens(
26            &role_position,
27            &[
28                Token::Struct {
29                    name: "RolePosition",
30                    len: 2,
31                },
32                Token::Str("id"),
33                Token::NewtypeStruct { name: "Id" },
34                Token::Str("123"),
35                Token::Str("position"),
36                Token::U64(12),
37                Token::StructEnd,
38            ],
39        );
40    }
41}