feat: add pronouns to user and server members field (#811)

Signed-off-by: İspik <ispik@ispik.dev>
This commit is contained in:
İspik
2026-06-21 10:55:23 +03:00
committed by GitHub
parent d27917b824
commit ffab2369ab
10 changed files with 54 additions and 0 deletions

View File

@@ -28,6 +28,9 @@ auto_derived_partial!(
/// Member's nickname
#[serde(skip_serializing_if = "Option::is_none")]
pub nickname: Option<String>,
/// Member's pronouns
#[serde(skip_serializing_if = "Option::is_none")]
pub pronouns: Option<String>,
/// Avatar attachment
#[serde(skip_serializing_if = "Option::is_none")]
pub avatar: Option<File>,
@@ -65,6 +68,7 @@ auto_derived!(
/// Optional fields on server member object
pub enum FieldsMember {
Nickname,
Pronouns,
Avatar,
Roles,
Timeout,
@@ -88,6 +92,7 @@ impl Default for Member {
id: Default::default(),
joined_at: Timestamp::now_utc(),
nickname: None,
pronouns: None,
avatar: None,
roles: vec![],
timeout: None,
@@ -231,6 +236,7 @@ impl Member {
FieldsMember::JoinedAt => {}
FieldsMember::Avatar => self.avatar = None,
FieldsMember::Nickname => self.nickname = None,
FieldsMember::Pronouns => self.pronouns = None,
FieldsMember::Roles => self.roles.clear(),
FieldsMember::Timeout => self.timeout = None,
FieldsMember::CanReceive => self.can_receive = true,

View File

@@ -345,6 +345,7 @@ impl IntoDocumentPath for FieldsMember {
FieldsMember::JoinedAt => Some("joined_at"),
FieldsMember::Avatar => Some("avatar"),
FieldsMember::Nickname => Some("nickname"),
FieldsMember::Pronouns => Some("pronouns"),
FieldsMember::Roles => Some("roles"),
FieldsMember::Timeout => Some("timeout"),
FieldsMember::CanPublish => Some("can_publish"),

View File

@@ -31,6 +31,9 @@ auto_derived_partial!(
/// Display name
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
/// User's pronouns
#[serde(skip_serializing_if = "Option::is_none", default)]
pub pronouns: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
/// Avatar attachment
pub avatar: Option<File>,
@@ -76,6 +79,7 @@ auto_derived!(
ProfileContent,
ProfileBackground,
DisplayName,
Pronouns,
// internal fields
Suspension,
@@ -182,6 +186,7 @@ impl Default for User {
username: Default::default(),
discriminator: Default::default(),
display_name: Default::default(),
pronouns: Default::default(),
avatar: Default::default(),
relations: Default::default(),
badges: Default::default(),
@@ -706,6 +711,7 @@ impl User {
}
}
FieldsUser::DisplayName => self.display_name = None,
FieldsUser::Pronouns => self.pronouns = None,
FieldsUser::Suspension => self.suspended_until = None,
FieldsUser::None => {}
}

View File

@@ -336,6 +336,7 @@ impl IntoDocumentPath for FieldsUser {
FieldsUser::StatusPresence => "status.presence",
FieldsUser::StatusText => "status.text",
FieldsUser::DisplayName => "display_name",
FieldsUser::Pronouns => "pronouns",
FieldsUser::Suspension => "suspended_until",
FieldsUser::None => "none",
})